带符号的32位二进制的负整数

Nik*_*kos 4 python binary python-2.7

>>> a = -2147458560
>>> bin(a)
'-0b1111111111111111001111000000000'
Run Code Online (Sandbox Code Playgroud)

我的意图是操作a为32位带符号的二进制文件并返回它.正确的转换-2147458560将是'0b10000000000000000110001000000000'; 我怎么能实现这一目标?

fal*_*tru 14

第一个按位AND(&)和0xffffffff(2 32 - 1):

>>> a = -2147458560
>>> bin(a & 0xffffffff)
'0b10000000000000000110001000000000'

>>> format(a & 0xffffffff, '32b')
'10000000000000000110001000000000'
>>> '{:32b}'.format(a & 0xffffffff)
'10000000000000000110001000000000'
Run Code Online (Sandbox Code Playgroud)