浮点数的格式
浮点数由阶码和尾码组成。
我们假定:r是浮点数阶码的低,与尾数的基数相同,通常为2;E,M都是有符号的定点数。
E为阶码,M为尾数则:
N=r的E次方xM;
| 阶符 | 阶码的数值部分 | 数符 | 尾数的数值部分 |
|---|
阶符和阶码的位数共同反映了浮点数的表示范围及小数点的实际位置;数符表示了浮点数的符号,尾数的位数n反应了浮点数的精度。
规格化浮点数
为了提高运算的精度,需要充分地利用尾数的有效位数,通常采用浮点数规格化形式,即规定尾数的最高位必须是一个有效值。
左规:尾数左移,阶码-1(用于规格化处理)
右规:尾数右移,阶码+1(用于尾数溢出)
上面所谓的阶码±1都是仅仅用于阶码的低为2的情况。
注意:
1)规格化后尾数M的绝对值应该是处于1/r~1之间
2)原码规格化后
正数为0.1…的形式;最大值为0.11111…1,最小值为0.10000…0
负数为1.1…的形式;最大值为1.1000000,最小值为1.111111…1
3)补码规格化后
正数为0.1…的形式;最大值为0.11111…1,最小值为0.10000…0
负数为1.0…的形式;最大值为1.01111…1,最小值为1.00000…0
加减运算
加减运算分几个步骤:
1)对阶
对阶的目的就是让两个小数点的位置对齐,阶码相同。(小阶码看向大阶码,阶码小的尾数右移)注意:右移过程中,会出现舍弃了部分有效位产生误差,影响精度。
2)尾数求和
尾数按定点数加减法计算即可。
3)规格化
左移右移直到变为上述格式。
4)舍入
舍入有很多方法,比如四舍五入啊(也就是0舍1入);恒放1;
5)溢出判断
这个判断方式是:根据上述的四个形式,如果阶码大于最大阶码就是上溢出,阶码小于最小阶码就是下溢出。
6万+

被折叠的 条评论
为什么被折叠?



