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

Negative integer to signed 32-bit binary

>>> a = -2147458560
>>> bin(a)
'-0b1111111111111111001111000000000'

我的意图是将 a 作为 32 位带符号二进制文件和 return 进行操作。 -2147458560 的正确转换为 '0b10000000000000000110001000000000';我怎样才能做到这一点?

按位与 (&) 与 0xffffffff (232 - 1) 首先:

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

>>> format(a & 0xffffffff, '32b')
'10000000000000000110001000000000'
>>> '{:32b}'.format(a & 0xffffffff)
'10000000000000000110001000000000'