当前位置: C语言 -- 专题 -- 浮点数

浮点数(三)

六、浮点数的算术运算
1、加法运算

基本操作:

X = MX×2EX

Y = MY×2EY

如果EX≤EYX+Y = (MX×2EX-EY+MY)×2EY


6.25100.37510的二进制加法为例:

(1)、两个数的二进制形式

6.2510 = 110.012 = 1.1001×22

0.37510 = 0.0112 = 1.1×2-2


(2)、对齐指数

将指数低的向指数高的对齐。

0.37510 = 1.1×2-2 = 0.00011×22


(3)、相加

1 . 1 0 0 1 0
0 . 0 0 0 1 1
1 . 1 0 1 0 1

所以和为1.10101×22

结果的二进制形式为:

0 1000 0001 1010 1000 0000 0000 0000 000

2、减法运算

基本操作:

X = MX×2EX

Y = MY×2EY

如果EX≤EYX-Y = (MX×2EX-EY-MY)×2EY


6.25100.37510的二进制减法为例:

(1)、两个数的二进制形式

6.2510 = 110.012 = 1.1001×22

0.37510 = 0.0112 = 1.1×2-2


(2)、对齐指数

将指数低的向指数高的对齐。

0.37510 = 1.1×2-2 = 0.00011×22


(3)、相减

1 . 1 0 0 1 0
0 . 0 0 0 1 1
1 . 0 1 1 1 1

所以差为1.01111×22

结果的二进制形式为:

0 1000 0001 0111 1000 0000 0000 0000 000