为什么两个二进制的补码相加时,和的符号位等于两数的

 我来答
蓝雪儿老师
高能答主

2020-02-01 · 愿千里马,都找到自己的伯乐!
蓝雪儿老师
采纳数:266 获赞数:85159

向TA提问 私信TA
展开全部

对于无符号数而言,没有什么原码、反码、补码的概念,只有绝对值

对于带符号数,才会有采用什么码型来表示的问题。10000000确实是-128的补码。对于带符号数,最高位是符号位,0表示正数、1表示负数,始终不变。所有的码型换算,都只针对低位的绝对值部分进行。

例如12的原码是00001100,-12的原码是10001100。对其绝对值部分0001100求反加1得1110100,最高位添上符号位1,就是补码11110100。

所以码型转换运算只针对绝对值部分,不针对符号位,符号位始终不变。

扩展资料:

负数的补码:

负数的补码就是对反码加1,而正数不变,正数的原码反码补码是一样的。

1、补码的得来:是为了让负数变成能够加的正数,所以,负数的补码=模-负数的绝对值:比如:-1 补码:1111 1111(0000 0001,也就是-1的绝对值,取反加1得来)当一个数要减1的时候,可以直接加 1111 1111。

2、原码的得来:(负数的原码,直接把对应正数的最高位改为1)原码能够直观的表示一个负数(能直观的把真值显示出来,如 -1为1000 0001其中最高位表示符号位,不进行算术计算)

3、反码和补码之间转换:补码= 反码+1

4、现在来推-128的补码:-128的补码:1000 0000 - 1000 0000(+128没有符号位)=1000 0000

-128的反码:1111 1111(1000 0000 +1=1000 0000+1111 1111=1111 1111)。

-128的原码:1000 0000(反码取反)。

往回推:-128的原码 1000 0000 (-128,进位被舍去)、-128的反码 1111 1111。

-128的补码 1000 0000(1111 1111(反码) + 1=1000 0000,这里实际上真正相加的是、1111 1111后面的7位,第1位是符号位始终不会变。

所以,当进到第8位的时候,就表示溢出了,会被舍弃)。

5、 0只有一个补码0000 0000(听说可以证明的),如果是这样,那么1000 0000就不会表示成-0的补码。即:补码1000 0000唯一的表示-128。

在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个。

野人无事不言L
2017-02-10 · TA获得超过1413万个赞
知道顶级答主
回答量:2242万
采纳率:0%
帮助的人:138.7亿
展开全部
对于无符号数而言,没有什么原码、反码、补码的概念,只有绝对值。
对于带符号数,才会有采用什么码型来表示的问题。10000000确实是-128的补码。对于带符号数,最高位是符号位,0表示正数、1表示负数,始终不变。所有的码型换算,都只针对低位的绝对值部分进行。
例如12的原码是00001100,-12的原码是10001100。对其绝对值部分0001100求反加1得1110100,最高位添上符号位1,就是补码11110100。
所以码型转换运算只针对绝对值部分,不针对符号位,符号位始终不变。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式