电子技术基础(三)__第5章 数字电路基础__有符号数的表示方法:原码与补码

一 原码表示法

如果正数的符号位用0 表示, 负数的符号位用1表示, 数值位按照 无符号数 来确定, 这种表示方法称为原码表示法

 

例如:  有两个十进制有符号数, 请 用 8位二进制原码表示X1 和 X2.

               X1 = -20 ;   X2 = 32;   

解 :  X1 = -20 =        1                       0010100

                                  符号位              数值位

         X2 =  32 =          0                      0100000

                                 符号位                数值位

也可以写成  [X1] 原 =   10010100

                      [X2] 原 =  00100000

 

其中的下标 “原”  表示 原码

       数0  的原码 有两种表示形式

         [+0] 原 = 00000000                        [-0] 原 = 10000000

    8位二进制原码所能表示的数值范围为 -127 ~   +127

有符号数的原码表示既简单又易于理解,  与真值转换方便, 也解决了有符号数的正负符号在计算机中的表示问题 

原码的缺点是在进行加减运算时非常麻烦, 不仅要考虑数的符号, 还要考虑数值大小, 使运算器设计非常复杂,

因此,  引入了有符号 数的补码表示法, 它可以使正, 负数的加减法运算简化为一种加法运算。

二  补码表示法

正数的补码与原码相同, 因此, 对于正数X而言, 

                 [X] 原 =  [X] 补

负数的补码可以从原码求得,  方法是:  将负数原码除符号位之外的数位按位取反,  即1 变 0, 0 变 1, 然后在最低位上加1, 就可以得到该数的补码。

例如 : 求 十进制数 -107 的补码

    解  [-107] 原 = 11101011

     第一步 原码:                                                  11101011

     第二步   将原码除符号位外各位取反                10010100

    第三步    在最低位加 1 , 得到补码                  10010101   

  [-107] 补 =  10010101

注意:  0的补码只有唯一的形式, 符号位 和数值位均为0,   8 位二进制补码所能表示的数值范围为 -128 ~ +127.

电子技术基础(三)__第5章 数字电路基础__有符号数的表示方法:原码与补码