目录
什么是移码
将每一个数值加上一个偏置常数( Excess / bias)。移码是用来表示浮点数的阶。
通常,当编码位数为n时,bias取 或(如 IEEE 754)
例如:当n = 4 时,
为什么要用移码来表示指数(阶码)
便于浮点数加减运算时的对阶操作(比较大小)

浮点数表示范围

![]()
第0位数符号位S;第1~8位为8位移码表示阶码E(偏置常数为128);第9~31位为24位二进制原码小数,表示尾数M。规格化尾数的小数点后第一位总是1,故规定第一位默认的“1”不明显表示出来。这样就可以用23个位数表示24位尾数。

IEEE754标准
规格化数:![]()
规定:小数点前总是“1”,故可隐含表示。
Single Precision(单精度)

- Sign bit: 1表示negative;0表示 positive
- Exponent(阶码)
- SP规格化阶码范围为0000 0001 (-126) ~ 1111 1110 (127)
- bias为127(single),1023(double)
- Significand(部分尾数):
- 规格化尾数最高位总是1,所以隐含表示,省1位
- 1 + 23 bits ( single),1 + 52 bits (double)

示例
1.机器数转换为真值
已知float型变量x的机器数为BEE00000H,求x的值是多少?

- 数符:1(负数)
- 阶(指数)
- 阶码: 0111 1101B = 125
- 阶码的值:

- 尾数数值部分:

- 真值:

2.真值转换为机器数
已知float型变量x的值为-12.75,求x的机器数是多少?

因此,符号S=1,阶码E=127+3=128 + 2 = 1000 0010
显式表示的部分尾数 Significant = 100 1100 0000 0000 0000 0000
x 的机器数表示为: 1 1000 0010 100 1100 0000 0000 0000 0000
版权声明:本文为u014555106原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。