移码(也称为偏移二进制码):一种用于表示有符号整数的编码方式
一、移码的偏置值
- 偏置值的定义
- 偏置值是一个固定的值,通常为(2^{n - 1})或(2^{n - 1}-1)((n)为二进制数的位数)。
- 移码公式:(\text{移码}=\text{真值}+\text{偏置值}),通过此方式将所有真值(包括负数)转换为无符号正数。
- 4位二进制移码示例(偏置值为(2^{3}=8))
- 真值范围:(-8)到(7);移码范围:(0)到(15)。
- 移码计算规则:(\text{移码}=\text{真值}+8)
-
真值(十进制) 真值(二进制) 移码(十进制) 移码(二进制) -8 -1000 0 0000 -7 -0111 1 0001 -6 -0110 2 0010 -5 -0101 3 0011 -4 -0100 4 0100 -3 -0011 5 0101 -2 -0010 6 0110 -1 -0001 7 0111 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111
二、详细解释
- 偏置值的作用
- 将真值范围从([-2^{n - 1},2^{n - 1}-1])平移到([0,2^{n}-1]),如4位移码中(-8)平移为(0),(7)平移为(15)。
- 移码的优点
- 用于浮点数阶码表示(如IEEE 754标准)。
- 移码比较可直接按无符号数进行,无需额外符号位处理。
- 移码与补码的区别
- 补码:符号位单独表示正负,数值部分表示绝对值。
- 移码:通过偏置值平移整个数值范围,无单独符号位。
三、实际应用:浮点数的阶码
- IEEE 754浮点数标准中的移码应用
- 单精度浮点数(32位)阶码偏置值为(127)。
- 双精度浮点数(64位)阶码偏置值为(1023)。
- 单精度浮点数阶码示例
- 阶码真值为(3)时,移码为(3 + 127 = 130)。
- 阶码真值为(-2)时,移码为(-2+127 = 125)。
- 通过移码,浮点数阶码可方便表示正负指数且直接按无符号数比较。
四、总结
- 移码的偏置值固定,用于将有符号数平移为无符号数。
- 移码常用于浮点数阶码表示,便于比较和计算。
- 借助偏置值,移码可统一表示负数、零和正数为无符号数。