#浮点机器数的表示方法
浮点数的格式
- 尾数是一个定点小数 它决定了浮点数有效数值的精度;
2.阶码数值是一个定点整数 它决定了浮点数的表示范围;
3.由于机器字长是一定的,如果浮点数用来表示尾数的数位增加一位,相应的用来表示阶码的数值就要减少一位。 - 格式之一:数符 阶符 阶码数值 尾数数值
浮点数的规格化表示
对于非规格化的浮点数,通常是通过修改阶码和左右移尾数的方法来使变为规格化浮点数,这个过程称为规格化。若尾数通过右移实现规格化,称为右规;通过左移实现规格化,称为左规。
废话 为了充分的利用尾数的二进制数位来表示更多的有效数字,通常采用规格化形式表示浮点数,即将尾数的绝对值限定在某个范围之内。
若阶码的底为2,有以下操作
1.对于原码表示的尾数 尾数最高有效位为1时,浮点数为规格化。
2对于补码表示的尾数 当数符位与尾数最高有效位相异时,浮点数为规格化。
3.浮点数运算过程中,尾数发生溢出,即超出尾数所能表示的数据范围,才要进行右规,尾数向右移一位,阶码+1,不要急,例子在后面呢~~~
例题
一个浮点数的表示格式为:16位浮点数,阶码6位(包含一位阶符),用移码表示;尾数10位(用补码表示),表示格式为 阶码在前,尾数(包括数符)在后,写出下列数字的规格化浮点数形式。
(1) X=+55.75
(2) Y=-27/128
解:将数字化为二进制原码形式,例如X=+110111.11B
根据格式要求分别写出其阶码和尾数的机器数,注意:尾数位数不足,在尾数末尾补0;阶码在前面补0 例如,X = +0.11011111 * 2^110, 阶码移码表示为 1,00110,尾数补码表示为 0.11011111
X浮 = 1,00110 0.110111110B
Y = -0.0011011B = -0.11011 * 2^-10; 阶码移码表示为 0,11110,尾数补码表示为 1.00101;
Y浮 = 0,11110 1.001010000B