浮点型数据的格式IEEE754标准

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◦ 若E=0,且M=0,则N为0。此时为非规格化数。 ◦ 若E=0,且M≠0,则N=(-1)S×2E-126× (0.M)。此时为 非规格化数。 ◦ 若E=255,且M≠0,则N=NaN (Not a Number的简称, 即“非数值”)。需要特别处理。 ◦ 若E=255,且M=0,则N=(-1)S×∝(无穷大)。 ◦ 若1≤E≤254,则N=(-1)S×2E-127×(1.M)。此时为规格 化数。
7
上海电机学院 王中华 wangzh@sdju.edu.cn

IEEE754标准的几点解释:
◦ IEEE754在标识浮点数时,每个浮点数均由3个部分组成:符号 位S,阶码部分E和尾数部分M。 ◦ IEEE 754标准存储浮点数时,根据阶码的不同,分为规格化表 示(E∈[1,254])和非规格化表示(E=0或255)两种。 ◦ IEEE754标准约定:在规格化表示时,小数点左部有一个隐含1, 因此实际的有效数字部分应为1M;非规格化表示时,小数点左 部没有隐含1 。(不隐含1的目的是为了存储0以及那些非常接 近于0的小数,如:(0.0……01)2,假设此处省略了128个0。) ◦ 阶码部分采用移码表示,float型数据的移码值为127,从而使 阶码值的范围由原来的1到254,经移码后变为指数值的范围为: -126到+127。
当阶码E和尾数M均为0时则表示该数值为0; 当阶码E为0,尾数M不为0时,该数绝对值较小,允许采用非 规格化形式表示,非规格化格式中尾数部分的隐含位为“0”, 而不是“1”(即不设置隐含位了)。
9
上海电机学院 王中华 wangzh@sdju.edu.cn

概括起来,对32位单精度所表示的IEEE754标准浮 点数N有如下解释:
符号位S:0为正实数,1为负实数
尾数M(存小数部分)

double型数据的存储格式(IEEE754标准)
…… 54 53 52 51 50 49 48 18 ………… 10
63 62 61
9 8 7 6 5 4 3 2 1 0
阶码E(存指数部分) 符号位S:0为正实数,1为负实数
尾数M(存小数部分)
4
上海电机学院 王中华 wangzh@sdju.edu.cn
源自文库
float型数据的存储格式(IEEE754标准)
9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
阶码E(存指数部分)
5
上海电机学院 王中华 wangzh@sdju.edu.cn

举例:
=1.11 1011 0111 0100 1011 1100 0110……×26
(123.456)10=(0111 1011. 0111 0100 1011 1100 0110……)2
左边=1.11 1011 0111 0100 1011 1100 0000×26 右边=1.11 1011 0111 0100 1011 1100 1000×26 左边:123.45599365234375 右边:123.45600128173828 左边误差:0.00000634765625 右边误差:0.00000128173828 因此,符号位S=0,阶码E=133(指数6+移码127), 尾数M=11 1011 0111 0100 1011 1100 1(取小数点后的23位, 在此之后的位按“最近舍入”模式进行舍入;小数点前的1隐含不存, 这样做可以提高精度。)
上海电机学院 王中华 wangzh@sdju.edu.cn
上海电机学院 王中华 wangzh@sdju.edu.cn
整数取值范围的计算
IEEE754标准简介
IEEE754标准的解释 float型存储格式举例
浮点数的有效位数和
表示范围
2
上海电机学院 王中华 wangzh@sdju.edu.cn

当int型数据占2 Byte时,它描述的数据范围为什么 是-32768~32767? 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
3
上海电机学院 王中华 wangzh@sdju.edu.cn



IEEE 754标准的主要起草者是加州大学伯克利分校 数学系教授William Kahan,他帮助Intel公司设计 了8087浮点处理器(FPU),并以此为基础形成了 IEEE 754标准,Kahan教授也因此获得了1987年 的图灵奖。 IEEE 754浮点格式确实是天才的设计! Kahan教授的主页: http://www.cs.berkeley.edu/~wkahan/ 与IEEE 754相关的标准:IEEE 854(关于十进制浮 点数的)、IEEE 754R(IEEE 754的修订版)
6
上海电机学院 王中华 wangzh@sdju.edu.cn
因此,float型的 (123.456)10将在内存中存储为: 0 10000101 11 1011 0111 0100 1011 1100 1 S E=133 M 为了书写方便,我们一般将其写为十六进制形式:42F6E979

VC++6.0验证
8
上海电机学院 王中华 wangzh@sdju.edu.cn
◦ 阶码值0和255分别用来表示特殊数值:
当阶码E为255时,若尾数部分M为0,则表示无穷大; 如:0 11111111 0000 0000 0000 0000 0000 000
当阶码E为255时,若尾数部分M不为0,则认为这是一个“非 数值”( 一般用NaN表示,意思为“Not a Number” );
int型数据的表示方式:
符号位:0为正数,1为负数 互补 -32767 -32768 -1 0 数值位的变化从0~32767 +32767
+32767的编码:0111 1111 1111 1111 “-0”的编码:1000 0000 0000 0000 为了保持数字0编码的唯一性,同时为了保持加法和减法的统一, 负数区间的整数采用了补码表示法! -32767的补码为:1000 0000 0000 0001 -32766的补码为:1000 0000 0000 0010 …… -1的补码为:1111 1111 1111 1111
相关文档
最新文档