[计算机组成原理]原码,补码,反码,移码定义及相互转换规则
[计算机组成原理]原码,补码,反码,移码定义及相互转换规则
chapter 2
2.1 带符号数表示
2.1.1 原码(符号位 + 数值部分)
纯小数: ±0.Xn-1Xn-2…X1X0 (字长:n+1)
表示范围: -1 < x < 1
例:+0.1010110原 = 0.1010110 -0.1010110原 = 1.1010110 (字长为8,即n = 7)
纯整数:±Xn-1Xn-2…X1X0 (字长:n+1)
表示范围:-2n < x < 2n
例:+1010110原 = 01010110 -1010110原 = 11010110 (字长为8,即n = 7)
移位规则:符号位不变,数值部分左移或右移,移除空位填0
注意点:+0,-0原码不同
-2n,-1原码无法表示
2.1.2 补码(模,补数,方便加减)
纯小数: ±0.Xn-1Xn-2…X1X0 (字长:n+1)
表示范围:-1 ≤ x < 1
表示格式:Xn.Xn-1Xn-2…X1X0 (Xn为符号位)
定义:[X]补 = X if 0 ≤ x< 1
[X]补 = 2 + X if -1 ≤ x< 0
(mod 2)
纯整数:±Xn-1Xn-2…X1X0 (字长:n+1)
表示范围:-2n ≤ x < 2n
表示格式:XnXn-1Xn-2…X1X0 (Xn为符号位)
定义:[X]补 = X if 0 ≤ x< 2n
[X]补 = 2n+1 + X if -2n ≤ x< 0
(mod 2n+1)
移位规则:右移:符号位不变,数值部分右移,填符号位
左移:连同符号位左移,填0(符号位前后不一说明有效位移出)
注意点:真值0的补码表示是唯一的:0.0000000 00000000
[-1]补 = 2 + (-1) = 1.0000000 1即代表符号位又代表数值1
[-2n]补 = 2n+1 - 2n = 10000000 1即代表符号位又代表数值2n
2.1.3 反码(中间步骤)
(1)X ≥ 0:使符号位为0,数值部分与X相同
(2)X ≤ 0:使符号位为1,数值部分逐位取反
注意点:纯小数 [+0]反 = 0.0000000 [-0]反 = 1.1111111
纯整数[+0]反 = 00000000 [-0]反 = 11111111
2.1.4 移码(方便比较大小)
纯小数: ±0.Xn-1Xn-2…X1X0 (字长:n+1)
[X]移 = 1 + X -1 ≤ x < 1
纯整数:±Xn-1Xn-2…X1X0 (字长:n+1)
[X]移 = 2n + X -2n ≤ x < 2n
移数值为K的移码:
移数值为K的移码 = K + 实际数值
2.1.5 各种码值的转换规则
注意点: [-0]原 (纯小数/纯整数)按简便求法求[X]补得出[-1]补/[-2n]补