读书人

浮点数二进制运算?解决办法

发布时间: 2012-06-09 17:16:42 作者: rapoo

浮点数二进制运算?
http://geeklu.com/2011/03/ieee754-floating-point-arithmetic/

“两个数相加,这个时候发现指数不一致,所以需要对齐,一般情况下是向右移,因为最右边的即使溢出了,损失的精度远远小于左边溢出。
所以这个时候指数的真正的值都为-3,然后0.1右移后的尾数与0.2的尾数进行相加(别忘记首位的1)
这个时候尾数相加

0.1100110011001100110011001100110011001100110011001101
+1.1001100110011001100110011001100110011001100110011010
--------------------
10.0110011001100110011001100110011001100110011001100111
规格化之后(注意末尾有进位)
为1.0011001100110011001100110011001100110011001100110100X2^(-2)



一,两个浮点数二进制相加,只计算尾数部分?

double 0.1;
其二进制:
0011111110111001100110011001100110011001100110011001100110011010
尾数部分:11001100110011001100110011001100110011001100110011010
链接是 :0.1100110011001100110011001100110011001100110011001101

并不相同!

[解决办法]
10.0110011001100110011001100110011001100110011001100111
规格化之后(注意末尾有进位)
为1.00110011001100110011001100110011001100110011001101001X2^(1)

读书人网 >C语言

热点推荐