一 IEEE754-2008 标准详解:浮点数据的分类

本文是对《C++语法详解》一书相关章节的增补,以增强读者对浮点数的理解,原书引用的是老版的 -1985 标准
《C++语法详解》网盘地址:
本文摘自本人所作《-2008标准详解》网盘地址
链接:
提取码:lzku
有兴趣的读者可参阅本人所著《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,使其知其然更知其所以然 。此书是一本全面了解C++不可多得的案头必备图书 。
由于本人能力有限,文中难免有错漏之处,望广大读者指出更正,不胜感激
第1章 IEEE 754-2008对浮点数据的分类及基本概念
1、注:本文将IEEE 754 -2008简称为IEEE 754
2、实现:比如,想造一辆汽车,于是设计了方案A,然后根据方案A造出了汽车M,则汽车M就是方案A的实现,也可以说,汽车M实现了方案A 。同理,-2008只是一个现论上的标准(类似于方案A),要使标准能真正成为现实,必须得有根据标准的实现,通常编译器会实现-2008中的标准,但不一定会实现所有标准 。
1.1 格式
1、格式():数值( )和符号的表示法()的集合,可能伴有编码 。
2、在IEEE中有如下几种类型的格式
3)、整数格式:标准中未定义的一种格式,表示整数的子集,也可能是表示无穷大、NaN或负零的附加值( value) 。
4)、交换格式( ):在标准中定义的具有特定的()固定宽度编码的格式 。交换格式由它们的大小标识,可以用于实现之间交换浮点数据 。可把交换格式理解为是一种编码后的格式 。
5)、基本格式:指的是以下五种格式
3、五种基本格式可以被实现为受支持的交换格式或算术格式(见图XXX),若实现为交换格式则分别称其为二进制交换格式和十进制交换格式 。
4、格式可理解为类型,因为编程语言如C++等,可通过类型来实现格式,如浮点格式可使用float、等类型来实现 。因此
1.2 实数、浮点数、浮点数据
1、实数包括有理数和无理数,其中无理数是指无限不循环小数,如π,√2等 。
2、由于计算机的存储容量有限,无限不循环小数、长度超过规定的有限小数都无法存储,因此,计算机处理的都是长度有限的实数,这些数被称为浮点数,所以,浮点数和实数是不同的,可把浮点数理解为是实数的近似,是实数的有限子集,浮点数通常在计算机中用于近似的表示任意某个实数 。
【一IEEE754-2008 标准详解:浮点数据的分类】3、浮点数的小数点在使用科学表示法(也称为指数表示法)时,可根据指数的不同而浮动,这是之所以被称为浮点数的原因 。
4、由于浮点数是实数的近似,因此,浮点算术也是实算术的一种近似计算,因此,实算术的某些性质并不适用于浮点算术,如加法结合律 。
5、在-2008中的浮点数是指的除了NaN之外的浮点数据,而浮点数据包括,
3)、有符号无穷大4)、NaN (not-a-,即,不是一个数),又分为
6、需要注意的是,中的0和无穷大都是有符号的 。
1.3 浮点数据表示法及其值
1、IEEE 754-2008使用浮点数据表示法来表示浮点数据,使用浮点数据表示法表示的数是未编码的,浮点数据表示法包括以下内容:
2、浮点数据表示法与其所表示的值的区别
在IEEE 754中浮点数据表示法与其所表示的值是两个不同的概念,如,假设sign =1,= 5,= 2.34,基数b = 10,则以下三元组是IEEE 754的浮点数据表示法
(1, 5, 2.34)//IEEE754浮点数据表示法