算法:关于二进制取反,符号位取不取反的问题

我看到有时候讲解二进制的时候有这样一个规律:补码=反码+1但是算反码的时候我看有的时候是所有位取反,有的是符号位保持不变,其余位取反这两个哪个对呢?或者说适用情况不同?-... 我看到有时候讲解二进制的时候有这样一个规律:
补码=反码+1

但是算反码的时候我看有的时候是所有位取反,有的是符号位保持不变,其余位取反

这两个哪个对呢?或者说适用情况不同?
----------------------------------------------------
那计算二进制减法的时候,例如5-3,我们会将其变成加法运算5+(-3)
这个取反过程好像符号位也取反了,这是为什么呢?麻烦前辈们再帮小弟看下,我就是卡在这里了=。=
展开
 我来答
toshiojkx
推荐于2016-11-23 · TA获得超过492个赞
知道小有建树答主
回答量:260
采纳率:100%
帮助的人:105万
展开全部
(1) 原码:在数值前直接加一符号位的表示法。
(2)反码:
正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
(3)补码:
正数:正数的补码和原码相同。
负数:负数的补码则是符号位为“1”。数值部分按位取反后再在最低位加1。也就是“反码+1”。
----------------------------------------------------

5-3计算过程,以字长8bit为例
5 - 3 =
(0000 0101)补 + (1000 0011)补 =
0000 0101 + 1111 1101 (这里就是反码为1111 1100,+1得到) =
1 0000 0010
最后,这里字长为8bi,所以8位以后的都舍弃(从右边开始数)
PS:如果舍弃掉的是有效数字,那么这就是传说中的溢出
所以,结果为(0000 0010)2=(2)10
所以5-3=2
showmest
2013-11-08 · TA获得超过123个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:163万
展开全部
所有位取反 是针对无符号位的数字,即非负数
如果是有符号位的 就是符号位保持不变,其余位取反
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数学1357531
2013-11-08 · TA获得超过632个赞
知道小有建树答主
回答量:398
采纳率:50%
帮助的人:188万
展开全部
符号位正数都是0,负数都是1,只有负数补码=反码+1,正数两者相等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式