(计算机组成原理)第二章数据的表示和运算-第三节3:浮点数加减运算
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(计算机组成原理)第二章数据的表示和运算-第三节3:浮点数加减运算相关的知识,希望对你有一定的参考价值。
一:以十进制下的科学计数法的加减运算为例说明浮点数加减运算
比如有浮点数 9.85211 × 1 0 12 + 9.96007 × 1 0 10 9.85211×10^{12}+9.96007×10^{10} 9.85211×1012+9.96007×1010,其运算基本步骤如下
1:对阶
所谓对阶就是对齐两个浮点数的阶数,由于计算机内部尾数是定点小数,所以对阶是一律向大阶看其
也即
9.85211
×
1
0
12
+
0.0996007
×
1
0
10
9.85211×10^{12}+0.0996007×10^{10}
9.85211×1012+0.0996007×1010
2:尾数相减
也即
9.9517107
×
1
0
12
9.9517107×10^{12}
9.9517107×1012
3:规格化
由于我们已经对阶了,所以这里就不用规格化了。
- 如果尾加减出现了 0.0099517 × 1 0 12 0.0099517×10^{12} 0.0099517×1012,就需要左规;如果尾数加减出现了 99.517107 × 1 0 12 99.517107×10^{12} 99.517107×1012时,需要右规
4:舍入
假如规定了机器只能保持6位有效尾数,则
9.9517107
×
1
0
12
9.9517107×10^{12}
9.9517107×1012中多余尾数部分应该砍掉,也即
9.95171
×
1
0
12
9.95171×10^{12}
9.95171×1012
- 也可以采用四舍五入,也即 9.95171 × 1 0 12 9.95171×10^{12} 9.95171×1012
- 也可以采用“若砍掉部分非0,则入1”的原则,即 9.95172 × 1 0 12 9.95172×10^{12} 9.95172×1012
5:判溢出
假如规定了阶码不能超过两位,若运算后的阶码超出范围则溢出。比如
9.85211
×
1
0
99
+
9.96007
×
1
9
99
=
19.81218
×
1
0
99
9.85211×10^{99}+9.96007×19^{99}=19.81218×10^{99}
9.85211×1099+9.96007×1999=19.81218×1099,规格化后并采用四
舍五入原则保留6位尾数得:
1.98122
×
1
0
100
1.98122×10^{100}
1.98122×10100,因此这里产生了溢出
- 需要注意的是尾数溢出并不是真正的溢出,因为有可能通过规格化来拯救。
二:浮点数的加减运算(不舍入)
c a s e : case: case:已知十进制数 X = − 5 256 X=-\\frac{5}{256} X=−2565、 Y = + 59 1024 Y=+\\frac{59}{1024} Y=+102459,按机器补码浮点运算规则计算 X − Y X-Y X−Y,结果用二进制表示,浮点数格式如下
- 阶符2位、阶码2位、数符2位、尾数9位
预备步骤1:格式转换
- 对于 X = − 5 256 X=-\\frac{5}{256} X=−2565:其中分子5= ( 101 ) 2 (101)_{2} (101)2,而 1 256 = 2 − 8 \\frac{1}{256}=2^{-8} 2561=2−8,因此 X = − 101 × 2 − 8 = − 0.101 × 2 − 5 = − 0.101 × 2 − 101 X=-101× 2^{-8}=-0.101×2^{-5}=-0.101×2^{-101} X=−101×2−8=−0.101×2−5=−0.101×2−101
- 对于 Y = + 59 1024 Y=+\\frac{59}{1024} Y=+102459:其中分子 59 = ( 111011 ) 2 59=(111011)_{2} 59=(111011)2,而 1 1024 = 2 − 10 \\frac{1}{1024}=2^{-10} 10241=2−10,因此 Y = + 111011 × 2 − 10 = + 0.111011 × 2 − 4 = + 0.111011 × 2 − 100 Y=+111011×2^{-10}=+0.111011×2^{-4}=+0.111011×2^{-100} Y=+111011×2−10=+0.111011×2−4=+0.111011×2−100
预备步骤2:确定浮点数
题目规定:阶符2位、阶码2位、数符2位、尾数9位
①:对于 X X X
- 阶码:其阶码部分为 − 5 -5 −5,对应原码为 1101 1101 1101,对应补码为 1011 1011 1011,因为阶符2位、阶码3位,因此必须增添1位,采用双符号位,也即补码为 11011 11011 11011;
- 尾数:其尾数部分为 − 0.101 -0.101 −0.101,对应原码为 1.101 1.101 1.101,对应补码为 1.011 1.011 1.011,因为数符2位、尾数9位,因此必须增添1位,采用双符号位,也即补码为 11.011 11.011 11.011,再进行符号扩展,也即补码为 11.011000000 11.011000000 11.011000000
因此 X X X的浮点数形式为:11011,11.011000000
②:对于 Y Y Y
- 阶码:其阶码部分为 − 4 -4 −4,对应原码为1100,对应补码为 1100 1100 1100,因为阶符2位、阶码3位,因此必须增添1位,采用双符号位,也即补码为 11100 11100 11100
- 尾数:其尾数部分为 + 0.111011 +0.111011 +0.111011,对应原码为 0.111011 0.111011 0.111011,对应补码为 0.111011 0.111011 0.111011,因为数符2位、尾数9位,因此必须增添1位,采用双符号位,也即补码为 00.111011 00.111011 00.111011,再进行符号扩展,也即补码为 00.111011000 00.111011000 00.111011000
因此 Y Y Y的浮点数形式为:11100,00.111011000
第一步:对阶:使两个数的阶码相等,小阶向大阶看其
- 求阶差(减法采用加法实现):
[
Δ
E
]
补
=
11011
+
00100
=
11111
[\\Delta E]_{补}=11011+00100=11111
[ΔE]补=11011+00100=(计算机组成原理)第二章数据的表示和运算-第三节1:浮点数的表示
(计算机组成原理)第二章数据的表示和运算-第二节3:定点数的移位运算(算数移位逻辑移位和循环移位)
(计算机组成原理)第二章数据的表示和运算-第一节5:本章习题