zab*_*bop 4 python boolean python-3.x
我发现这~True是-2&~False正在-1使用我的 Jupyter Notebook。
这个消息来源说~反转所有位。为什么不是~True是False和~False是True?
我试图解释这些:
True是+1,并且 的位+1被反转。+倒置为-。
1在两位二进制中是01,所以反转位:10,即2。所以结果是-2。
False是+0,+被反转为-,0在两位二进制中是00,所有位反转,11,这就是3- 它应该是1。
这个答案点了一个更复杂的图:
一个充满 True 的列表只包含对一个规范 True 对象的 4 或 8 字节引用。
这个消息来源说:
bool:布尔(真/假)类型。支持的精度:8(默认)位。
这些不支持上面的简单化(显然是错误的)推理。
那么~True存在-2与~False存在的正确解释是-1什么?
首先,我会使用 not 运算符来反转布尔值(不是 True == False,反之亦然)。现在,如果布尔值存储为 8 位整数,则会发生以下情况:
True 是 0000 0001。因此 ~True 产生 1111 1110,在二进制补码表示中为 -2。
False 是 0000 0000。因此 ~False 产生 1111 1111,即 -1。
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |