浮点数加减法
- 浮点数加法
为了理解浮点加法,首先我们看到十进制的实数加法,因为在两种情况下都应用了相同的逻辑。
例如,我们必须添加1.1×10 3和50。
我们无法直接添加这些数字。首先,我们需要对齐指数,然后,我们可以添加有效位数。
对齐指数后,我们得到50 = 0.05 * 10 3
现在增加有效数0.05 + 1.1 = 1.15
因此,最后我们得到(1.1 * 10 3 + 50)= 1.15 * 10 3
在这里,请注意,我们将这些数字相加了50并设为0.05。
现在,让我们浮点数加美采取例如
我们按照以下步骤添加两个数字:
1.对齐有效位数
2.添加有效位数
3.归一化结果
让两个号码是
x = 9.75
y = 0.5625
将它们转换为32位浮点表示形式,
9.75的32位格式表示形式= 0 10000010 00111000000000000000000
0.5625的32位格式表示= 0 01111110 00100000000000000000000
现在我们得到指数的差异,知道需要多少位移。
( 10000010 – 01111110 ) 2 =( 4 ) 10
现在,我们将较小数字的尾数右移4个单位。
尾数0.5625 = 1.00100000000000000000000
(请注意,小数点前的1以32位表示形式被理解)
向右移动4个单位,我们得到0.00010010000000000000000
尾数为9.75 = 1。00111000000000000000000
两者的尾数相加
0。00010010000000000000000
+ 1. 00111000000000000000000
————————————————
1. 01001010000000000000000
在最终答案中,我们采用更大的指数
因此,最终答案包括:
符号位= 0
较大的指数= 10000010
尾数= 01001010000000000000000
答案的32位表示形式= x + y = 0 10000010 01001010000000000000000
- 浮点减法
减法类似于加法,但有一些区别,例如我们不像加法那样减去尾数,并且在符号位中放置了更大的符号。
让两个号码是
x = 9.75
y = – 0 .5625
将它们转换为32位浮点表示形式
9.75的32位格式表示形式= 0 10000010 00111000000000000000000
– 0.5625的32位格式表示= 1 01111110 00100000000000000000000
现在,我们找到指数的差异,以了解需要多少移位。
( 10000010 – 01111110 ) 2 =( 4 ) 10
现在,我们将较小数字的尾数右移4个单位。
的尾数– 0.5625 = 1.00100000000000000000000
(请注意,小数点前的1以32位表示形式被理解)
向右移动4个单位, 0.00010010000000000000000
尾数为9.75 = 1。00111000000000000000000
减去两个的尾数
0。00010010000000000000000
– 1. 00111000000000000000000
————————————————
1. 00100110000000000000000
较大的符号位= 0
因此,最终答案= x – y = 0 10000010 00100110000000000000000
本文由Anuj Batham提供。