计算机为什么用补码存储数据

如题所述

补码的功能,类似于:

  时针倒拨 3 小时,与正拨 9 小时,效果相同。

利用这种思路,计算机中的负数,也可以改为正数(即补码)。

同时,减法运算,也就可以用加法运算代替了。

那么,借助于补码,就能统一加减法,够简化计算机的硬件。

十进制比较容易理解:

  25 - 1 = 24

  25 + 99 = (一百) 24。

只要忽略进位,+99 就能代替-1。

+99 就称为-1 的补数。

在这里用了 2 位 10 进制。

求补数的算法:补数 = 负数 + 10^2。

通用的公式是:补数 = 负数 + 10^n。 n 是位数。

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

计算机用二进制,补数,就改名为:补码。


一个字节,是 8 位 2 进制。

计数范围是:0000 0000 ~ 1111 1111(十进制 255)。

计数周期是:2^8 = 256。


求补码的算法:负数的补码=负数+2^n。

那么:

-1 的补码=-1 + 256 = 255 = 1111 1111。

-2 的补码=-2 + 256 = 254 = 1111 1110。

。。。


例如,7-2 = 5,用补码计算如下:

      7 = 0000 0111

   [-2] 补 = 1111 1110

 ---相加------------

  得: (1)   0000 0101  = 5

舍弃进位,结果就完全正确。

借助于补码,负数就没有了,从而就把“减法转换为加法运算”。

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

补码的来源,与原码反码毫无关系。

“原码反码取反加一、符号位也能参加运算”...

这些,都没有什么理论依据。

从“取反加一”来学习补码,就弄不清楚“为什么用补码”。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-14
计算机用补码存储及处理数据的好处:
(1.)可用加法代替减法运算,[a-b]补 = [a]补+[-b]补
简体了计算机运算硬件电路,提高运算效率:
(2.)统一了正0和负0
原码及反码的正0、负0有不同的表示,补码的0是唯一的,
例如字长8位,补码的0表示为唯一的00000000本回答被网友采纳
相似回答