补码与反码有什么用处?

2025-02-23 14:19:36
推荐回答(2个)
回答1:

补码来表示和存储。反码多应用于系统环境设置。

1、补码:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

2、反码:反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。

扩展资料:

已知一个数的补码,求原码的操作其实就是对该补码再求补码 :

1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

例:已知一个补码为11111001,则原码是10000111(-7)。因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。其余七位1111001取反后为0000110;再加1,所以是10000111。

参考资料来源:百度百科-反码

参考资料来源:百度百科-补码

回答2:

在计算机系统中,数值,一律采用补码表示和存储。

原码和反码,都没有任何用处。

虽然,计算机用是二进制数。

但是,进行数学计算时,二进制数、十进制数,并没有本质的区别。

十进制数中,有补数,二进制数中,有补码。

它们,都是雷同的。

其实,所谓的补码,并不是什么什么码,它也是数。

你就看十进制吧。

当你忽略了进位,+99,能代替-1:

●  27 + 99 = (进位 1) 26,

●  27 - 1 = 26。

当你舍弃了进位,正数,就当负数、加法,就能完成减法运算。

在计算机中,虽然用的是二进制,也同样是这样的规律。

这些代替负数的正数,就是计算机专家发明的“补码”了。

-------------------

什么是补数?  99、1,又是什么关系?

若两数之和,为 10、100、1000 ... 10^n,这两个数,就是【互为补数】。

如:4 和 6、88 和 12、455 和 545 等等,就互为补数。

99、1,显然也是互为补数。

------

对于二进制数来说,若两数之和,为 2^n,也就是互为补数了。

八位二进制的进位,是 2^8 = 256 = 1 0000 0000 (二进制)。

那么,1 和 255、2 和 254、...、128 和 128,都是互为补数的关系。

------

在前面已经证明,在十进制时:-1,就可以用 +99 代替。

同样道理,在二进制时:-1 就可以用 255 (1111 1111) 代替。

其它的:-2 用 1111 1110、-3 用 1111 1101、、、代替即可。

这就是计算机专家发明的“补码”了。

其实,补码,并不是什么码,它也是正常的数值。

所谓的:[ X ]补 + [ Y ]补 = [ X + Y ]补,也不过是故弄玄虚而已。

关键问题是:舍弃进位! 他们却没有认真的强调一下。

------

其实,进位、舍弃进位、补数,这些都是小学算术中的概念。

计算机专家如果好好的上个小学,就一定不会编造那些无聊的概念了。