繁体   English   中英

为什么~False 给出-1 和~True -2?

[英]Why does ~False give -1 and ~True -2?

我一直认为 ~ 相当于不在 Python 中,但我有一个错误让我发现了这一点。 有人可以向我解释那是什么吗?

谢谢

从官方文档

一元~ (反转)运算符产生其 integer 参数的按位反转。 x的按位求逆定义为-(x+1) 它仅适用于整数。

至于为什么~False会是-1 ,这是因为历史原因False == 0True == 1 (它们不相同但它们相等,并且boolint的子类)。 如果你应用上面的公式,你会得到~False => -(False + 1) => -(0+1) => -1 ,QED。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM