关于二进制取反

关于二进制取反

如果我本身有个数128,二进制为10000000,现在我对这个二进制取反,结果为01111111,最终输出的答案是127。但这个跟课上讲的冲突了,课上说取反会变成负数,但我这里这个情况并没有发生。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。二进制的位数其实由它表示的数据类型决定,每一种数据类型所占的位宽是不一样的。如int型是32位,也就是说它最大可以占32个2进制位,即并不一定是固定的8位二进制。

在对128取反时,第9位是0。如0000 1000 0000取反后是1111 0111 1111高位是1,需要再取反加1,即-129

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师