码迷,mamicode.com
首页 > 其他好文 > 详细

IEEE 754标准浮点数

时间:2015-05-04 17:49:39      阅读:711      评论:0      收藏:0      [点我收藏+]

标签:

一、IEEE 754浮点数的表示

浮点数数学表示技术分享

符号位(sign):决定该浮点数的正负

尾数(significand):二进制小数,范围在[1,2)或者[0,1)中

阶码(exponent):对浮点数加权,权重为2的E次幂

单精度浮点数:在单精度的浮点数中,符号位编码为1位二进制位,阶码编码为为8位二进制位,尾数编码为23位二进制位;

双精度浮点数:在双精度浮点数中,符号位编码为1位二进制位,阶码编码为为11位二进制位,尾数编码为52位二进制位;

二、浮点数编码知识储备

<1>浮点数阶码的移码表示法:

移码为在真值的基础上加上一个称为偏置值(Bias)的常数,相当于在X轴上移动了若干个单位;移码定义为技术分享

使用移码的优点:可以将真值映射到一个正数域,将移码视为无符号数,可以直接按照无符号整数的比较规则比较阶码的大小。

<2>规格化

为了充分利用尾数的有效位数,通常规定浮点数尾数的最高位需要为一个有效值,这即为浮点数的规格化。

采用浮点数的规格化形式,则浮点数尾数的绝对值大小为 0.5 <= |M| < 1

三、IEEE 754浮点数编码方式

根据阶码的不同,浮点数被编码的情况可以分为3种情况:

<1>规格化数:

1)阶码编码:阶码的二进制编码不全为0和1;使用移码表示阶码的值,阶码的值为E = e -Bias,其中Bias = 2^(k-1)-1;

2)尾数编码:规格化数的尾数编码为浮点数的规格化表示方法,尾数二进制编码表示为技术分享

尾数定义为M = 1 + f,这种表示为隐含的以1开头的表示

<2>非规格化数:

1)解码编码:阶码的二进制编码全部为0,在这种情况下,阶码值是 E = 1 – Bias;

2)尾数编码:尾数的值M=f,不包含隐含的开头的1;

3)用途:

(1)表示数值0

(2)表示接近数值0的数

<3>特殊值:

1)阶码编码:阶码编码全部为1

2)尾数编码:尾数编码全部为0时,表示无穷,S = 0表示正无穷,S=1表示负无穷;当尾数不全为0时,结果数值为NaN(not a number),

即表示不是一个数值

四、IEEE 754浮点编码的性质

以8位浮点数为例,其中阶码编码为4位,尾数编码为3位,如图:

技术分享

 

<1>正浮点数的大小按照位表达的字典序升序保持升序;

<2>非规格化浮点数与规格化浮点数之间存在平滑的转换,非规格化浮点数可以平滑转换为规格浮点数;

IEEE 754标准浮点数

标签:

原文地址:http://www.cnblogs.com/tallisHe/p/4476558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!