计算机中,补码的表示方式是什么呢?

如题所述

以一个字节表示的话,-6的原码是10000110,反码是11111001,补码是11111010。

首先,6的原码、反码、补码相同,即都为0000 0110。

计算机拿到6的补码,即0000 0110。

对6的补码进行“~”计算(按位取反),得到1111 1001。

结果已经得到了,只不过是一个补码形式,所以接下来要把补码转换成原码(因为这个结果很明显是个负数,所以按照负数的补码转换成原码的公式来),由上述公式得到原码为:1000 0111。

已经得到结果的二进制,将二进制转换成十进制,得到-7。

正数的原码、反码、补码相同。

负数的反码:原码除符号位外按位取反。

负数的补码:反码+1。在计算机中,数值一律用补码来表示存储。

负数的补码转换成原码:除符号位外按位取反、+1。

对正数取反的方法:按位取反、取补码(因为正数的原码补码反码相同,所以省略了第一步取补码)。

对负数取反的方法:取补码、按位取反(因为负数按位取反后肯定是正数,正数的三码相同,所以省略最后一步取补码)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2024-08-14
所谓的补码,就是一个【代替负数】的正数。
取反加一,只不过是个【障眼法】而已。
也不仅是二进制用补码运算,任何进制,都有“补码”的。
你看十进制,两位数,就是: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 了。
这些个正数,就是计算机专家 “发明” 的补码。
----------------------
其实,补码,不需要谁来发明!
当你舍弃了进位,补码自然而然就出来了,
舍弃进位,这不过就是小学的知识点。
计算机专家,却弄不明白这个。
于是,就编造了一批垃圾:
--机器数真值原码反码取反加一符号位不变、符号位也参加运算...
谁要是跟老外学算术,立刻、马上,直接就掉沟里去了!