电子技术基础(三)__第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.