猿问
请问python中为什么~True等于-2?另外除了~还有没有其他取反操作符?
In[1]:~TrueOut[1]:-2谢谢!!...
慕码人2483693
浏览 1205
回答 3
3回答
SMILET
因为,True的默认值为1把True取反,也就是把1取反因为python默认的是有符号表示数1的二进制表示就是00000001各位取反之后就是11111110可见,取反之后,符号位从0变成了1,成了一个负数而已1作为符号位开头,计算机会将其识别为补码因为负数在机器中是以补码表示、补码转换真值的方式为补码的数值位,也就是除符号位之外的各位取反后加1。11111110除符号位取反后的值为10000001,再加1,便得到10000010,转换成十进制,便是-2
0
0
0
撒科打诨
不会啊。False是0,True是非0。所有非0,包括-2都是True在你这个试例里True为1,所以~1就等于-2~1取反后是-2~0等于-1,
0
0
0
摇曳的蔷薇
~(-2)是1~(-2)是1~(-2)是1~(-2)是1~(-2)是1
0
0
0
随时随地看视频
慕课网APP
相关分类
Python
我要回答