当我输入bin(-3)
时,它只显示-0b11
。
这不是我想要的。 它只保留了那个负号并转换了数字。 我想要负数的实际表示。
Python中有没有可以做到这一点的方法?
根据你想要的二进制位数,从数字(2n)中减去:
>>> bin((1 << 8) - 1)
'0b11111111'
>>> bin((1 << 16) - 1)
'0b1111111111111111'
>>> bin((1 << 32) - 1)
'0b11111111111111111111111111111111'
更新
使用以下表达式,您可以涵盖正数和负数两种情况:
>>> bin(((1 << 32) - 1) & -5)
'0b11111111111111111111111111111011'
>>> bin((1 << 64) - 1) '0b1111111111111111111111111111111111111111111111111111111111111111'
- ForceBrubin(((1 << 32) - 1) & -5)
。请注意,翻译保持了原文的意思和结构,并且没有添加任何额外的解释。 - cobbal