gpt4 book ai didi

python - 波浪号对 boolean 值的影响——为什么 Python 中的 ~True 是 -2 & ~False 是 -1?

转载 作者:行者123 更新时间:2023-12-03 20:24:43 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How does the bitwise complement operator (~ tilde) work?

(18 个回答)


去年关闭。




问题
我发现 ~True-2 & ~False-1使用我的 Jupyter Notebook。
This source~反转所有位。为什么不是 ~TrueFalse~FalseTrue ?

推理尝试
我试图解释这些:True+1 ,以及 +1 的位是颠倒的。 +倒置为 - .1在两位二进制中是 01 ,所以反转位:10 , 即 2 .所以结果是 -2 .False+0 , +倒置为 - , 0在两位二进制中是 00 ,所有位反转,11 , 即 3 - 应该是 1 .

来源
This answer点更复杂的图:

A list full of Trues only contains 4- or 8-byte references to the onecanonical True object.


This source说:

bool: Boolean (true/false) types. Supported precisions: 8 (default)bits.


这些不支持上面的简单化(显然是错误的)推理。

问题
~True的正确解释是什么?正在 -2 & ~False正在 -1然后?

最佳答案

首先,我会使用 not 运算符来反转 boolean 值(不是 True == False,反之亦然)。现在,如果 boolean 值存储为 8 位整数,则会发生以下情况:
True 是 0000 0001。因此 ~True 产生 1111 1110,在二进制补码表示中为 -2。
False 是 0000 0000。因此 ~False 产生 1111 1111,即 -1。

关于python - 波浪号对 boolean 值的影响——为什么 Python 中的 ~True 是 -2 & ~False 是 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63484690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com