[计算机组成原理]原码,补码,反码,移码定义及相互转换规则

[计算机组成原理]原码,补码,反码,移码定义及相互转换规则

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]

猜你喜欢

转载自blog.csdn.net/weixin_44458659/article/details/109217516