如何在Python中打印可变的位

时间:2016-11-06 08:13:57

标签: python binary bit-manipulation bit binary-data

如果我使用Python触发终端并且我写道:

>>> x = 100
>>> x == 100
True
>>> x is 100
True

我可以很容易地看到布尔值对==is都有效 但是如果我尝试将1000设置为变量,那么我有:

>>> x = 1000
>>> x == 1000
True
>>> x is 1000
False

有没有办法让我看到变量如何逐位存储在内存中?我不想要memory pointers,我希望看到01看看Python 正确存储

  • 100十进制= 01100100二进制(8位= 1个八位字节)
  • 1000 in decimal = 0000001111101000 in binary(16 bits = 2 octets)。

100适合8位八位字节,而1000不适合它。 根据我的理解,==始终会提供TRUE因为读取值is正在读取内存空间,所以最终它只读取八位字节的前8位。

1 个答案:

答案 0 :(得分:0)

尤里卡! 谢谢大家的帮助!

我现在明白,这不是关于Python如何在二进制代码中存储信息,而是关于Python如何为-5到256(含)范围内的整数存储每个分配的整数对象:

>>> x = 256
>>> y = 256
>>> id(x)
22980640
>>> id(y)
22980640

然后:

>>> x = 257
>>> y = 257
>>> id(x)
23550352
>>> id(y)
23550328