二进制的补码怎么算?
3个回答
2022-12-14 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
-85负就是1,然后计算正85:+85的原码(1010101)→按位取反(0101010)→加1(0101011)\r\n10101011(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 \r\n 【例2】求-7的补码。\r\n 因为给定数是负数,则符号位为“1”。\r\n 后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001)\r\n 所以-7的补码是11111001。
展开全部
在计算机系统中,数值,一律采用补码表示和存储。
原码和反码,根本就不存在。
所以,计算机中的计算,都是用二进制补码进行的。
在计算机中,只有加法器。
因此,补码也就只有一种算法,那就是:加法。
所以,你只要记住:逢二进一,就完事了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所谓的补码,只不过是个【障眼法】而已。
也不仅是二进制用补码运算,任何进制,都有“补码”的。
你看十进制,两位数是:0 ~ 99。
可以有:27 + 99 = (一百) 26
也可以:27 - 1 = 26
如果你忽略进位,依然保持两位数,那么:
--正数,就能当负数来用;
--加法,也就能完成减法运算。
如果在计算机舍弃进位,会怎样?
--计算机中,就全是正数了。
--负数没有了,减法运算也没有了。
--减法器,也没有了用武之地。
--计算机只需配置一个加法器,便可横行天下!
----------------------
看到了吗?
--只有你舍弃了进位,正数才能代替负数!
--补码,并不是来自取反加一!
【舍弃进位】,才是补码的来源和存在意义。
----------------------
两位十进制时,舍弃进位,就是减去一百 (10^2)。
那么,加上 99,再减去 100,必然就是“-1 ”!
------
八位二进制数则是:0000 0000 ~ 1111 1111。
换算到十进制,即:0 ~ 255。
出现了进位,就是:2^8 = 256。
------
那么,加上 255 (1111 1111),再减 256,不也是-1 吗?
同理:254 (1111 1110),就能代替-2。
。。。
最后:128 (1000 0000),就是代表-128 的。
这些正数,就是计算机专家 “发明” 的补码。
----------------------
其实,补码,不需要发明!
所谓的补码,不过就是小学的知识点。
计算机专家,却弄不明白这个。
于是,就编造了一批垃圾:
--机器数真值原码反码取反加一符号位不变、符号位也参加运算...
谁要是跟老外学算术,立刻、马上,直接就掉到沟里去了!
也不仅是二进制用补码运算,任何进制,都有“补码”的。
你看十进制,两位数是:0 ~ 99。
可以有:27 + 99 = (一百) 26
也可以:27 - 1 = 26
如果你忽略进位,依然保持两位数,那么:
--正数,就能当负数来用;
--加法,也就能完成减法运算。
如果在计算机舍弃进位,会怎样?
--计算机中,就全是正数了。
--负数没有了,减法运算也没有了。
--减法器,也没有了用武之地。
--计算机只需配置一个加法器,便可横行天下!
----------------------
看到了吗?
--只有你舍弃了进位,正数才能代替负数!
--补码,并不是来自取反加一!
【舍弃进位】,才是补码的来源和存在意义。
----------------------
两位十进制时,舍弃进位,就是减去一百 (10^2)。
那么,加上 99,再减去 100,必然就是“-1 ”!
------
八位二进制数则是:0000 0000 ~ 1111 1111。
换算到十进制,即:0 ~ 255。
出现了进位,就是:2^8 = 256。
------
那么,加上 255 (1111 1111),再减 256,不也是-1 吗?
同理:254 (1111 1110),就能代替-2。
。。。
最后:128 (1000 0000),就是代表-128 的。
这些正数,就是计算机专家 “发明” 的补码。
----------------------
其实,补码,不需要发明!
所谓的补码,不过就是小学的知识点。
计算机专家,却弄不明白这个。
于是,就编造了一批垃圾:
--机器数真值原码反码取反加一符号位不变、符号位也参加运算...
谁要是跟老外学算术,立刻、马上,直接就掉到沟里去了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询