采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
~ 运算符不是按位取反吗?为什么~2结果是-3呢?
>>> ~2
-3
十进制2变成二进制是10,按位取反之后不应该变成01了,不应该是十进制1吗?请问老师这里是怎么操作的
我说真的,我没太看懂你要表达的意思。你可以看下负数的表示
那我简单点问吧,为什么 ~2 的 结果是 -3 ?
希望老师有时间解答一下这个问题,为什么 ~2 的 结果是 -3 ? 对~运算符的运算规则不太了解
你需要了解下负数是怎么表示的,二进制的,了解了应该就清楚了。
# 取2原码 00000010 # 取2反码,此时可以看成某个数的补码。 11111101 # 某数的补码-1=某个数的反码 11111100 # 某数的原码 => 3 00000011 # 2的反码 = 3的反码+1(某数的反码+1就是某数的负数),所以 = -3 -3
2 八位代表00000010,第一位符号位,1负数0正数,取反为11111101, 3的二进制表示为00000011,负数为3的补码加1即11111100+1=11111101 ,这个数就是2的按位取反
这个记得组成原理学过,二进制前面还有符号位,0表示负数,1表示正数;按位取反好像还要用到原码,反码,补码,学了很久忘记怎么操作了。。。
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
5.7k 7
2.5k 3
2.2k 5
4.2k 22
2.3k 19