当我输入bin(-3)
时,它只显示-0b11
。
这不是我想要的。
它只保留-
符号并转换数字。
我想要负数的实际表示。
python中有没有这样做的方法呢?
答案 0 :(得分:15)
根据您想要的二进制数字数量,从数字中减去(2 n ):
>>> bin((1 << 8) - 1)
'0b11111111'
>>> bin((1 << 16) - 1)
'0b1111111111111111'
>>> bin((1 << 32) - 1)
'0b11111111111111111111111111111111'
<强>更新强>
使用以下表达式,您可以涵盖正面和负面情况:
>>> bin(((1 << 32) - 1) & -5)
'0b11111111111111111111111111111011'