请问python中为什么~True等于-2?另外除了~还有没有其他取反操作符?

In[1]:~TrueOut[1]:-2谢谢!!...

慕码人2483693
浏览 1128回答 3
3回答

SMILET

因为,True的默认值为1把True取反,也就是把1取反因为python默认的是有符号表示数1的二进制表示就是00000001各位取反之后就是11111110可见,取反之后,符号位从0变成了1,成了一个负数而已1作为符号位开头,计算机会将其识别为补码因为负数在机器中是以补码表示、补码转换真值的方式为补码的数值位,也就是除符号位之外的各位取反后加1。11111110除符号位取反后的值为10000001,再加1,便得到10000010,转换成十进制,便是-2

撒科打诨

不会啊。False是0,True是非0。所有非0,包括-2都是True在你这个试例里True为1,所以~1就等于-2~1取反后是-2~0等于-1,

摇曳的蔷薇

~(-2)是1~(-2)是1~(-2)是1~(-2)是1~(-2)是1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python