[英]Why does ~False give -1 and ~True -2?
我一直认为 ~ 相当于不在 Python 中,但我有一个错误让我发现了这一点。 有人可以向我解释那是什么吗?
谢谢
一元
~
(反转)运算符产生其 integer 参数的按位反转。x
的按位求逆定义为-(x+1)
。 它仅适用于整数。
至于为什么~False
会是-1
,这是因为历史原因False == 0
和True == 1
(它们不相同但它们相等,并且bool
是int
的子类)。 如果你应用上面的公式,你会得到~False
=> -(False + 1)
=> -(0+1)
=> -1
,QED。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.