[计算机原理]补码运算原理

时间:2024-02-23 18:57:41

补码出现的目的:

人是可以区分符号位的,但计算机辨别"符号位"会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法.即补码运算。

 

补码运算的原理:

有几点要提前说明:

1.八位二进制数的范围是0000,0000~1111,1111 (00H~FFH),当数超过FFH后又会重头开始,不妨将此想象成一个00H到FFH的钟表。

2.计算机中-1~-128以补码形式存储,即00H~7FH代表0~127, 80H~FFH代表-128~-1

.

     现以06H-08H为例,如上图,绿色弧线代表06H,黑色弧线代表08H,弧线长度代表大小。显然,06H-08H = -02H,-02H在计算机中的二进制为11111101(FDH,即其补码),在图中对应黄色弧线。08H的补码为F8H,即红色的弧线。我们用06H(绿色)+ 08H的补码F8H(红色),如下图:

    06H+F8H = FDH,FDH即06H-08H所得到的逆时针的黄色弧线,其也可由顺时针的06H+F8H表示,所以补码加法代替了减法。

    另外,补码为什么要由反码加一得到呢,因为某个负二进制数XXH的反码等于FFH-XXH,而上面钟的起点是00H,FFH-XXH比红色弧线的值小了1,所以要在反码的基础上加一。