【转载】浮点数运算的的规格化
在尾数用补码表示时,规格化浮点数应满足尾数最高数位与符号位不同,如相同就是不满足规格化。
尾数用双符号位补码表示,经过加/减运算之后,可能出现以下六种情况,即
① 00.1 x x … x
② 11.0 x x … x
③ 00.0 x x … x
④ 11.1 x x … x
⑤ 01.x x x … x
⑥ 10.x x x … x 第①、②种情况,符合规格化数的定义,已是规格化数。 第③、④种情况不是规格化数,需要使尾数左移以实现规格化,这个过程称为左规。尾
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_417.png)
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_418.png)
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_419.png)
数每左移一位,阶码相应减 1,直至成为规格化数为止。
左规可以进行多次。
① 00.1 x x … x
② 11.0 x x … x
③ 00.0 x x … x
④ 11.1 x x … x
⑤ 01.x x x … x
⑥ 10.x x x … x 第①、②种情况,符合规格化数的定义,已是规格化数。 第③、④种情况不是规格化数,需要使尾数左移以实现规格化,这个过程称为左规。尾
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_417.png)
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_418.png)
![浮点数运算的的规格化 浮点数运算的的规格化](http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/images/Image_419.png)
数每左移一位,阶码相应减 1,直至成为规格化数为止。
左规可以进行多次。
第⑤、⑥种情况在定点加减运算中称为溢出,但在浮点加减运算中,只表明此时尾数的 绝对值大于 1,而并非真正的溢出。这种情况应将尾数右移以实现规格化。这个过程称为右 规。尾数每右移一位,阶码相应加 1。
右规最多只有一次。
总结:左规处理,及时数往小数点左边走,阶码-1,右规反之。