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

Bha*_*not 6 python bit

当我进入bin(-3)它只是显示-0b11.

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

python中是否有任何方法可以做到这一点?

fal*_*tru 16

根据您想要的二进制数字数,从数字(2 n)中减去:

>>> bin((1 << 8) - 1)
'0b11111111'
>>> bin((1 << 16) - 1)
'0b1111111111111111'
>>> bin((1 << 32) - 1)
'0b11111111111111111111111111111111'
Run Code Online (Sandbox Code Playgroud)

UPDATE

使用以下表达式,您可以涵盖正面和负面情况:

>>> bin(((1 << 32) - 1) & -5)
'0b11111111111111111111111111111011'
Run Code Online (Sandbox Code Playgroud)

  • 对于奖励积分,你可以用bitwise一次性地覆盖正面和负面,并且:`bin(((1 << 32) - 1)&-5)` (4认同)