二进制10000000应该表示128或者-0啊,干嘛等于-128呢?

 我来答
White_MouseYBZ
2011-10-23 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6716万
展开全部
这是-128的补码表示。0没有正负之分;如果不引进补码的概念,计算机计算的结果还真会出现+0、-0的问题,引进了补码的概念就没有这个问题了。上面这个数就是-128,是一个字节能表示的最小的有符号数。它也符合求补码的规则:符号位不变,数据位求反+1。也有一种观点认为-128这个数特别,没有反码与补码。不管怎样,计算机里好多东西都是规定,只要运作起来顺畅就是了。不然,下数的原码、反码、补码都一样你能理解吗?取反了一样,加一了还一样,不可思议吧?这也是规定。有些边缘问题先记住,慢慢理解。这个数是不是-128的补码,可以加一个+128看是否为0来验证。位一个字节已不能表示有符号数+128了,那就要用两个字节,+128就是0000000010000000;-128也要扩展为两个字节,扩展原理是用符号位填满扩展字节(+128扩展也是用符号位填满扩展字节,它的符号位是0),就是1111111110000000。0000000010000000+1111111110000000=0。
问天问地48
推荐于2017-10-01 · 知道合伙人教育行家
问天问地48
知道合伙人教育行家
采纳数:497 获赞数:2917
就读于西安交通大学。

向TA提问 私信TA
展开全部
负数在现代计算机里一般用补码表示:
最高位是符号位,其余位为数字的原码取反+1
1000 0000还原为原码:
最高位是1,表示负数,剩余的各位取反 111 1111 再+1 得到 1000 0000, +128的原码,整个数为-128
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盼兰八
2022-01-23 · TA获得超过1833个赞
知道小有建树答主
回答量:409
采纳率:91%
帮助的人:17.7万
展开全部
这是一个非常特殊的带符号位二进制编码数,表示的是十进制的-128;
补码:1000 0000;
反码:补码减1,1000 0000-1=1111 1111(低位向高位逐次借1,符号位保持不变);
原码:反码取反,符号位保持不变,可推出原码为1000 0000;
从上面的推导中我们发现了一个很有趣,很有意思的现象,那就是这个负数的补码和原码居然是一样的,都是1000 0000,从原码最“原始”的理解,这个数“应该”是表示十进制的-0,那么问题出来了,8位带符号位的二进制编码数0000 0000也表示十进制的0(-0也是0),那岂不是有两个8位二进制编码数都表示十进制的0吗?有冲突了!为了解决这一问题,计算机编码领域统一明文规定,这个补码表示十进制纯数学结果128的负数,也就是-128,以避免出现-0的情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2022-09-15 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

八位的原码,可表示的范围是:-127 ~ +127。

八位的反码,可表示的范围是:-127 ~ +127。

八位的补码,可表示的范围是:-128 ~ +127。

即,-128 只有补码,并没有原码和反码。

对于-128,取反加一、减一取反,就都不能用了。

 

实际上,取反加一,并非是补码的定义式。

补码,有自己的定义式,和原码反码都没有关系。

 当 X >= 0,  [ X ]补 = X;     零和正数不用变换。

 当 X < 0,  [ X ]补 = X + 2^n。 n 是补码的位数。

那么,[-128]补 = -128 + 2^8 = 1000 0000 (二进制)。

所以,二进制 1000 0000,就表示-128。

-128 的八位原码和反码,就别想了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yaoyueyang
2011-10-23 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:28.1万
展开全部
那个‘1 ’既代表符号位,也代表数字位
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式