如何获得int的32位二进制补码位模式?

时间:2012-10-29 13:12:21

标签: python

有没有办法获得实际的位表示,而不是垃圾'-0bx'?我需要实际能够看到这些位。它是否出现大/小端无关紧要。这是一项任务。 有谁知道如何在python中查看整数的实际2的补码位表示?

2 个答案:

答案 0 :(得分:4)

因为数字不限于某个位范围,所以没有规范的“位”表示。输出结果为0b10b111111110b1111111111111111等,具体取决于您打算使用的位范围。

以下是否会给你想要的东西?

> x = -1
> print(bin(x & 0xffffffff)) # 32-bit output
0b11111111111111111111111111111111

注意:这不会用0来填充固定长度,正如Ned的建议那样。

答案 1 :(得分:4)

>>> x = -1
>>> "{:032b}".format(x & 0xffffffff)
'11111111111111111111111111111111'