没有合适的资源?快使用搜索试试~ 我知道了~
首页IEEE 和 IBM float介绍及转换
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/3289371/bg1.jpg)
IEEE 浮点数的存储格式。
0 引言
(,电子电气工程师协会)在 年制定的
( !"#$)二进制浮点运算规范,是浮
点运算部件事实上的工业标准。许多计算机用户有机会在 %& 和 '(或 )( 机之间交换二进制数据,所以
对照 %& 和 '( 结构计算机的数据表示及相关程序设计语言,讨论 浮点数存储格式的细节是有意义的。
本文对浮点数、 浮点数的表示方法、规格化处理等进行了分析,重点分析、比较了 %& 和 '( 结构计算
机 浮点数的存储格式。
1 浮点数
在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点表示法。相对于定
点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。
浮点数表示法利用科学计数法来表达实数。通常,将浮点数表示为 *+
,
-.
,其中 +,称为有效数字
(/),它具有 0个数字(称 0 位有效数字精度),. 为基数(), 为指数(%0),*表示实数
的正负
1$!23
。更精确地,*
4
+
1
2…
0
-
$
-.
, 表示以下数
*(
4
+
$
.
-
$
+… +
0
-
$
.
-(
0
-
$
)
).
,(45
<.)。
对实数的浮点表示仅作如上的规定是不够的,因为同一实数的浮点表示还不是唯一的。例如,$+4-$4
2
,4+$-$4
6
,和 4+4$-$4
都可以表示 $44+4。为了达到表示单一性的目的,有必要对其作进一步的规范。规定有效数字的最高位7即
前导有效位8必须非零,即 4<
4
<.。符合该标准的数称为规格化数(" 9" :),否则称为非规格化数
7; 9" :8。
2 IEEE 754 浮点数与其浮点格式
2.1 实数的 IEEE 754 表示形式
一个实数 < 在 标准中可以用 <=7-$8
-=-2
的形式表示
16!3
,说明如下:
7$8符号 78决定实数是正数7=48还是负数7=$8,对数值 4 的符号位特殊处理。
728有效数字 =(/)是二进制小数,= 的取值范围在 $5=<2 或 45=<$。
768指数 (%0)是 2 的幂,它的作用是对浮点数加权。
2.2 浮点格式
浮点格式是一种数据结构,它规定了构成浮点数的各个字段,这些字段的布局,及其算术解释
123
。 浮点数的数
据位被划分为 6 个字段,对以上参数值进行编码:
7$8一个单独的符号位 直接编码符号 。
728> 位的偏置指数 (=
>
-
$,
$
4
)编码指数 ,移码表示。
768 位的小数 78(=
-
$
,
$
4
)编码有效数字 =,原码表示。
2.3 浮点数的分类
根据偏置指数 的值,被编码的浮点数可分成三种类型。
7$8规格化数
当有效数字 = 在范围 $5=<2 中且指数 的位模式
>
-
$,
$
4
既不全是 4 也不全是 $ 时,浮点格式所表示的数都属于规
格化数。这种情况中小数 (45<$8的二进制表示为 4+
-
$
,
$
4
。有效数字 ==$+,即 ==$+
-
$
,
$
4
7其中小数点
左侧的数值位称为前导有效位8。我们总是能调整指数 ,使得有效数字 = 在范围 $5=<2 中,这样有效数字的前导有效
位总是 $,因此该位不需显示表示出来,只需通过指数隐式给出。
需要特别指出的是指数 要加上一个偏置值 ,转换成无符号的偏置指数 ,也就是说指数 要以移码的形式在存放计
算机中。且 、 和 三者的对应关系为 ?+,其中 ?2
>
-
$
-$。
728非规格化数
当指数 的位模式
>
-
$,
$
4
全为零(即 =4)时,浮点格式所表示的数是非规格化数。这种情况下,?$-,有
效数字 =??4+
-
$
,
$
4
,有效数字的前导有效位为 4。
非规格化数的引入有两个目的。其一是它提供了一种表示数值 4 的方法,其二是它可用来表示那些非常接近于 4+4 的数。
![](https://csdnimg.cn/release/download_crawler_static/3289371/bg2.jpg)
768特殊数
当指数 的位模式
>
-
$,
$
4
全为 $ 时,小数 的位模式
-
$
,
$
4
全为 4(即 ?4)时,该浮点格式所表示的值表示无穷,
?4时是+∞,?$ 时是-∞。
当指数 的位模式
>
-
$,
$
4
全为 $ 时,小数 的位模式
-
$
,
$
4
不为 4(
-
$
、…、
$
、
4
、至少有一个非零即 @4)时,
该浮点格式所表示的值被称为 ""("" :)。比如当计算 或∞-∞时用作返回值,或者用于表示未初始化的数
据。
3 IEEE 754 浮点存储格式
与浮点格式对应,浮点存储格式规定了浮点格式在存储器中如何存放。 标准定义了这些浮点存储格式,但具体选择
哪种存储格式由实现工具(程序设计语言)决定。
汇编语言软件有时取决于所使用的存储格式,但更高级的语言通常仅处理浮点数据类型的语言概念。这些浮点数据类型在不
同高级语言中有不同的名字,相应的 格式如表 $。
表 $格式和语言类型
精度 (,(AA
B'C'"
单精度
D 'E'EF
双精度
:
;BGE'(B"
'EF
扩展双精度
:
'EF$&1仅适用于
'( 和 )(3
标准准确地定义了单精度和双精度浮点格式,并为这两种基本格式的分别定义了扩展格式,表 $ 里扩展双精度
格式是 标准定义的扩展双精度类中的一种。
下面详细讨论在 %& 和 '( 平台上使用的三种 浮点存储格式。
3.1 单精度格式
单精度浮点格式共 62 位,含三个构成字段:26 位小数 , 位偏置指数 ,$ 位符号 。将这些字段连续存放在一个
62 位字里,并对其进行编码。其中 4H22 位包含 26 位的小数 ; 26H64 位包含 位指数 ;第 6$ 位包含符号 。如图 $ 所
示。
图 $单精度存储格式
一般地,62 位字的第 4 位存放小数 的最低有效位 E(/:),第 22 位存放小数 的最高有效位
=( /:);第 26 位存放偏置指数的最低有效位 E,第 64 位存放偏置指数的最高有效位
=;最高位,第 6$ 位存放符号 。
3.2 双精度格式
双精度浮点格式共 & 位,占 2 个连续 62 位 字,包含三个构
成字段:2 位的小数 ,$$ 位的偏置指数 ,$ 位的 符号位 。将这 2
个连续的 62 位字整体作为一个 & 位的字,进行重新 编号。其中 4:
$ 位包含 2 位的小数 ;2:&2 位包含 $$ 位的偏 置指数 ;而最高
位,第 &6 位包含符号位 。如图 2 所示。 图 2双精度浮点
数的存储格式
16$H43存放小数 的低 62 位,其中第 4 位存放整个小数 的最低有效位 E,第 6$ 位存放小数 的低 62 位的最高有效
位 =。
![](https://csdnimg.cn/release/download_crawler_static/3289371/bg3.jpg)
在另外的 62 位的字里,第 4到 $ 位,即 1$H623,存放小数 的最高的 24 位,其中第 4 位存放这 24 位最高有效数中
的最低有效位 E,第 $ 位存放整个小数 的最高有效位 =。第 24 到 64 位,即 12:&23,存放 $$ 位的偏置指数
,其中第 24 位存放偏置指数的最低有效位 E,第 64 位存放最高有效位 =。最高位,第 6$ 位存放符号位 。
在 %& 结构计算机中,数据存放采用小端法(),故较低地址的 62 位的字中存放小数 的 16$:43
位。而在在 '( 结构计算机中,因其数据存放采用大端法(:),故较高地址的 62 位字中存放小数 的
16$:43位。
3.3 扩展双精度格式
⑴扩展双精度格式('(结构计算机)
该 倍精度浮点环境符合 关于扩展双精度格式的定义。该浮点环境的 倍精度浮点格式共 $2 位,占 个连续 62
位字,包含 6 个构成字段:$$2 位的小数 ,$ 位的偏置指数 ,和 $ 位的符号 。将这 个连续的 62 位字整体作为一个
$2 位的字,进行重新编号。其中 4:$$4 位包含小数 ;$$2:$2& 位包含偏置指数 ;第 $2 位包含符号位 。如图 6
所示。
在 '( 结构计算机中,地址最高的 62 位字存放小数的 62 位最低有效位,即 16$H43;但是在 )( 结构计算机中,
却是地址最低的 62 位字存放这些位。
紧邻的两个 62 位字(在 '( 机中向下计算,在 )( 机中向
上计算)分别存放 1&6H623和 1H&3。
最后一个字的第 4 到 $ 位存放小数的最高 $& 位!即 1$$$H&3。其中
第 4 位存放该 $& 位的最低有效位,第 $ 位存放整个 小数 的最高有效
位。第 $& 到 64 位存放 $ 位的偏置指数 ,其中第 $& 位存放偏置指
数的最低有效位,第 64 位存放它的最高有效位。最高 位,第 6$ 位存放
符号 。 图 6扩展双精度存 储格式 7'(
结构计算机8
⑵扩展双精度格式(%& 结构计算机)
该浮点环境双精度扩展格式符合 双精度扩展格式的定义。该浮点环境的扩展双精度格式共 4 位,占 6 个连续 62
位字,包含四个构成字段:&6 位的小数 ,$ 位显式前导有效位(%0/:)I,$ 位偏置指数
,和 $ 位符号位 。将这 6 个连续的 62 位字整体作为一个 & 位的字,进行重新编号。其中 4:&6 包含 &6 位的小数 ,
第 &6 位包含前导有效位 I,&: 位包含 $ 位的偏置指数 ,最高位第 位包含符号位 。
在 结构系计算机中,这些字段依次存放 在十个连续的字
节中。但是,由于 G"J < 00
6& 00
78要求双精度扩展参数,从而占用堆栈 中 6 个相连地址
的 62 位字,其中最高一个字的高 $& 位未被使 用,如图 所示。
图 扩展双精
度存储格式7%& 结构计算机8
地址最低的 62 位字存放小数 的低 62 位,即 16$H43。其中第 4 位存放整个小数 的最低有效位 E第 6$ 位存放小数
低 62 位的最高有效位 =。
地址居中的 62 位字,第 4 到 64 位存放小数 的 6$ 位最高位,即 1&2H623。其中第 4 位存放 6$ 位最高小数位的最低有
效位 E,第 64 位存放整个小数的最高有效位,地址居中的 62 位字的最高位第 6$ 位存放显式的前导有效位 I。
地址最高 62 位字里,第 4 到 $ 位存放 $ 位的偏置指数 ,第 4 位存放偏置指数的最低有效位 E,第 $ 位存放最高
有效位 =,第 $ 位存放符号位 。虽然地址最高的 62 位字的高 $& 位在 %& 结构系列机种未被使用,但他们对符
合 的规定来说,是必需的。
4 总结
![](https://csdnimg.cn/release/download_crawler_static/3289371/bg4.jpg)
以上讨论了 %&、)( 和 '( 平台上使用的三种 浮点数格式及其存储格式,下面对浮点数的
相关参数进行总结,具体见表 2。
表 2浮点格式参数总结
参数
浮点格式
单精度 双精度
扩展双精度(
%&)
扩展双精度('()
小数 宽度
26 2 &6 $$2
前导有效位 隐含 隐含 显式 隐含
有效数字 = 精度 0
2 6 & $$6
偏置指数宽度 >
$$ $ $
偏置值 +$2 +$426 +$&66 +$&66
符号位宽度
$ $ $ $
存储格式宽度
62 & 4 $2
浮点数的存储 IEEE
24$44$4622H$
( 语言中,对于浮点类型的数据采用单精度类型(D)和双精度类型7:8来存储,D 数据占用 62:!: 数
据占用 &:!我们在声明一个变量 D?2+2 的时候,是如何分配内存的呢?其实不论是 D 还是 : 在存储方
式上都是遵从 的规范的,D 遵从的是 '62+2!而 :遵从的是 '&+6。
无论是单精度还是双精度在存储中都分为三个部分:
$、符号位78H4 代表正,$ 代表为负
2、指数位(%0)H用于存储科学计数法中的指数数据,并且采用移位存储
6、尾数部分(=):尾数部分
其中 D 的存储方式如下图所示:
而双精度的存储方式为H
'62+2 和 '&+6 的存储方式都是用科学计数法来存储数据的,比如 +2 用十进制的科学计数法表示就为H+2F !
而 $24+ 可以表示为H$+24F 。而计算机不认识十进制的数据,只认 4,$。所以在计算机存储中,首先要将上面的数
更改为二进制的科学计数法表示,+2 用二进制表示可表示为 $444+4$!$24+ 用二进制表示为:$$$4$$4+$。用二进制
的科学计数法表示 $444+4$ 可以表示为 $+4444$F !$$$4$$4+$ 可以表示为 $+$$4$$4$F !任何一个数都的科学计数
法表示都为 $+%%%F !尾数部分就可以表示为 %%%%!第一位都是 $ 嘛,干嘛还要表示呀?可以将小数点前面的 $ 省略,所
以 26: 的尾数部分,可以表示的精度却变成了 2:,道理就是在这里,那 2: 能精确到小数点后几位呢? 的二进制
剩余17页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/b2097f6003ee49069f3699e1397e724a_djana.jpg!1)
Djana
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)