int(True)是
1。
1是:
00000001
并且
~1是:
11111110
这是
-2在两个补1
1翻转所有位,将1加到结果数上,并将结果解释为幅度的 二进制表示形式 ,并添加一个负号(因为数字以1开头):
11111110 → 00000001 → 00000010 ↑ ↑ Flip Add 1
它是2,但是由于MSB是1 ,所以符号是负数。
值得一提:
想一想
bool,您会发现它本质上是数字-它有两个值
True和
False,它们只是整数1和0的“自定义”版本,它们的打印方式不同。它们是整数类型的
子类
int。
因此它们的行为与1和0完全相同,只是
bool重新定义
str并
repr以不同的方式显示它们。
>>> type(True)<class 'bool'>>>> isinstance(True, int)True>>> True == 1True>>> True is 1 # they're still different objectsFalse



