如何在python中获得负数的二进制表示

时间:2015-02-07 14:55:11

标签: python bit

当我输入bin(-3)时,它只显示-0b11

这不是我想要的。 它只保留-符号并转换数字。 我想要负数的实际表示。

python中有没有这样做的方法呢?

1 个答案:

答案 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'