浮点数
浮点数的表示:对违规审(舍的谐音)判
浮点数运算的过程:对阶→尾数运算→规格化。
其中对阶的过程:小数向大数看齐,尾数右移。
具体步骤了解:
- 对阶:
- 找出两个浮点数中阶码较大的一个,并将较小阶码的浮点数进行调整。
- 计算两个阶码的差值 ΔE。
- 将阶码较小的浮点数的尾数向右移动 ΔE 位,同时将阶码加 ΔE,使其与较大阶码的浮点数一致。
- 隐藏位的 1 需要在尾数移位过程中进行处理。
- 尾数加减:在两个数的小数点已经对齐之后,对它们的尾数进行加法或减法运算。在进行尾数加减之前,需要先还原在对阶过程中可能被“隐含”的数位。
- 规格化:
- 进行规格化处理,目的是使尾数的第一个有效数字(也就是小数点左边)始终为1。
- 右规:如果尾数的最高位为 01(表示小数部分有前导 0),则将尾数右移一位,同时将阶码加 1。
- 左规:如果尾数的符号位不同且计算结果溢出,则将尾数左移一位,同时将阶码减 1。
- 尾数左移一位会使阶码减小,可能导致指数下溢;尾数右移一位会使阶码增大,可能导致指数上溢。
- 舍入:
- 在对阶和尾数进行右规操作时,由于尾数右移而丢失了部分低位数值。
- 为了维持精度,需要对移出的低位数值进行舍入处理,常见的有“0舍1入”法等。
- 溢出判断:
- 在完成规格化和舍入后,需要对阶码进行溢出判断。
- 指数上溢:如果结果的阶码大于所能表示的最大阶码,则判断为上溢。
- 指数下溢:如果结果的阶码小于所能表示的最小阶码(或绝对值小于最小非规格化数),则判断为下溢,结果为零。