(1)移码定义
移码通常用于表示浮点数的阶码。
假设定点整数移码形式为 x0 x1 x2 ··· xn时,移码的定义是:
[x]移=2^n+x ( -2^n≤ x<2^n)
8 位移码表示的机器数为数的真值在数轴上向右平移了 128 个位置。 表示范围: 00000000 ~ 11111111
例1:当正数 x = +10101 时,
[x]移= 2^5 + 10101 = 1,10101 ;
例2:当负数 x = -10101 时,
[x]移= 2^5 +x = 2^5 – 10101 = 0,01011
例3:0的移码是唯一的,即:
[+0]移 = [0]移 = 100…00
[注意]: 移码中符号位 x0表示的规律与原码、 补码、反码相反——“1”正,“0”负。
(2)移码和补码的关系:
补码的定义:
移码的定义:
当 0 ≤x < 2n 时, [x]移 = [x]补+ 2^n
当 -2^n≤x <0 时, [x]移 = 2^n +x + 2^n - 2^n = [x]补- 2^n
(3)移码的特点
• 在移码中,最高位为0表示负数,最高位为1表示正数,这与原码、补码、反码的符号位取值正好相反。
• 移码为全0时所对应的真值最小,为全1时所对应的真值最大! 因此,移码的大小直观地反映了真值的大小,这将有助于两个浮点数进行阶码大小比较。
• 真值0在移码中的表示形式是唯一的,即:[+0]移= [0]移= 100…00
• 移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小。
• 同一数值的移码和补码除最高位相反外,其他各位相同。
移码、补码和真值之间的关系
真值(十进制) | 真值(二进制) | [x]补(补码) | [x]移(移码) |
---|---|---|---|
-128 | -1000 0000 | 1000 0000 | 0000 0000 |
-127 | -0111 1111 | 1000 0001 | 0000 0001 |
… | … | … | … |
-1 | -000 0001 | 1111 1111 | 0111 1111 |
0 | 0000 0000 | 0000 0000 | 1000 0000 |
1 | 0000 0001 | 0000 0001 | 1000 0001 |
… | … | … | … |
127 | 0111 1111 | 0111 1111 | 1111 1111 |