采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
~ 运算符不是按位取反吗?为什么~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
2 八位代表00000010,第一位符号位,1负数0正数,取反为11111101, 3的二进制表示为00000011,负数为3的补码加1即11111100+1=11111101 ,这个数就是2的按位取反
这个记得组成原理学过,二进制前面还有符号位,0表示负数,1表示正数;按位取反好像还要用到原码,反码,补码,学了很久忘记怎么操作了。。。
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
5.8k 7
2.6k 3
2.3k 5
4.3k 22
2.4k 19
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号