- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1.3 数的定点表示与浮点表示
2、浮点表示法
(4) IEEE754标准浮点格式
前面讨论的是原理性浮点格式,但实际计算机的浮点格式与此有一些差异。下面简要 介绍在当前主流微机中广泛采用的 IEEE754标准浮点格式。
按IEEE754标准,常用的浮点数的格式如图 2-3所示。
阶码E
尾数M
图2-3 IEEE754标准浮点格式
IEEE754有3种浮点表示格式,分别称为: 短浮点数(或称短实数)、长浮点数(或称
长实数)、临时浮点数(或称临时实数)。它们的具体格式如表 2-4所示。
表2-4 IEEE754的3种浮点表示格式
类型
数符
(位)
阶码
(位)
尾数数值
(位)
总位数
(位)
偏置值
十六进制
十进制
短浮点数
1
8
23
32
7FH
127
长浮点数
1
11
52
64
3FFH
1023
临时浮点数
1
15
64
80
3FFFH
16383
短浮点数又称为单精度浮点数,长浮点数又称为双精度浮点数,它们都采用隐含尾数 最高数位(20)的方法,这样,无形中又增加了一位尾数,因此,相应地尾数真值实际上等 于1+( 23位尾数数值或52位尾数数值)。临时浮点数又称为扩展精度浮点数,它没有隐含 位,尾数真值就等于 64位尾数数值。
下面以32位短浮点数为例,最高位是数符,其后是 8位阶码,以2为底,采用移码表
示,但偏置量为127,例如阶码真值为 1,则阶码的代码值为 128,这点与前述原理性偏置 量(128)有点差异。其余 23位尾数为纯小数,因此,尾数位数实际上是: 1位隐含位+23
位尾数=24位。
注意:隐含的“ 1”是一位整数(即权位为 2 0 )。在浮点格式中表示出来的 23位尾数 是纯小数,用原码表示。例如: (15) 10 =(1111) 2,将它规格化后结果为 1.111 X 2 3 ,其中
整数部分的“1”将不存储在23位尾数内。
阶码是以移码形式存储的。 短浮点数的偏置值为十进制 127或十六进制7FH;长浮点数
的偏置值为十进制 1023或十六进制3FFH;临时浮点数的偏置值为十进制 16383或十六进制
3FFFH存储浮点数阶码部分之前,偏置值先要加到阶码真值上。若阶码真值为 3,在短浮
点数中,移码表示的阶码为:十进制 127+3=130或十六进制82H;长浮点数中,移码表示的 阶码为:十进制1023+3=1026或十六进制402H;临时浮点数中,移码表示的阶码为:十进 制 16383+3=16386 或十六进制 4002H=
例2-29将(82.25) 1。转换成短浮点数格式。
1) 先将(82.25) 10转换成二进制数
(82.25) 10=(1010010.01) 2
2) 规格化二进制数(1010010.01) 2
1010010.01=1X 2 6
3) 计算移码表示的阶码 =偏置值+阶码真值:
(127+6) 10=(133) 10 = 2
4)以短浮点数格式存储该数
表示该数为正数由 3
表示该数为正数
由 3)可得
由 2)可得;尾数为 23 位,不
足在后面添 15 位 0
阶码 尾数 =01001001000000000000000
所以,短浮点数代码为:
0 ;01001001000000000000000
表示为十六进制代码为: 42A48000H
例2-30将(-18.125) io转换成短浮点数格式。
1 )先将(-18.125) io转换成二进制数
( -18.125) 10 =( - 10010.001) 2
2)规格化二进制数(-10010.001) 2
4
-10010.00仁一1.0010001 X 2
3)计算移码表示的阶码 =偏置值 +阶码真值:
(127+4) 10=(131) 10 = 2
4)以短浮点数格式存储该数
因此:符号位 =1
因此:符号位 =1
阶码尾数 =00100010000000000000000
由 3)可得
由 2)可得;尾数为 23 位,不 足在后面添 16 位 0
所以,短浮点数代码为:
1 ;;00100010000000000000000
表示为十六进制代码为: C1910000H
如何由十进制数转换成长浮点数格式、临时浮点数格式;以及又如何由短浮点数格式、
长浮点数格式、临时浮点数格式转换成十进制数请读者自己思考,这里不再赘述。
文档评论(0)