浮点数的二进制表示学习笔记

浮点数的二进制表示学习笔记

ID:9798312

大小:80.50 KB

页数:8页

时间:2018-05-10

浮点数的二进制表示学习笔记_第1页
浮点数的二进制表示学习笔记_第2页
浮点数的二进制表示学习笔记_第3页
浮点数的二进制表示学习笔记_第4页
浮点数的二进制表示学习笔记_第5页
资源描述:

《浮点数的二进制表示学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、文章1:单双精度浮点数的IEEE标准格式目前大多数高级语言(包括C)都按照IEEE-754标准来规定浮点数的存储格式,IEEE754规定,单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾数。阶即指数,尾数即有效小数位数。单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位,如下图所示:单精度浮点数存储格式 s指数  尾数                                                              31 

2、       30                 23 22                  0双精度浮点数存储格式 s 指数尾数                                                               63       62                 52 51                  0       细心的人会发现,单双精度各部分所占字节数量比实际存储格式都了一位,的确是这样,事实是,尾数部分包括了一位隐藏位,允许只存储23位就可以表示24

3、位尾数,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。例如1100B,对其规格化的结果为1.1乘以2的三次方,但个位1并不存储在23位尾数部分内,这个1是默认位。       阶以移码的形式存储。对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。存储浮点数的阶码之前,偏移量要先加到阶码上。前面例子中,阶为2的三次方,在单精度浮点数中,移码后的结果为127+3即130(82H),双精度为1026(402H)。      

4、 浮点数有两个例外。数0.0存储为全零。无限大数的阶码存储为全1,尾数部分全零。符号位指示正无穷或者负无穷。下面举几个例子:单精度浮点数 十进制规格化符号移阶码尾数                   -12-1.1x23  1100000101000000 00000000 00000000  0.251.0x2-2  0011111010000000 00000000 00000000  所有字节在内存中的排列顺序,intel的cpu按littleendian顺序,motorola的cpu按bigendian顺

5、序排列。浮点数的二进制表示学习笔记基础知识:十进制转十六进制;十六进制转二进制;IEEE制定的浮点数表示规则;了解:目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:            符号位    阶码     尾数    长度float          1          8        23      32double   

6、      1         11       52     64 以下通过几个例子讲解浮点数如何转换为二进制数例一:已知:double类型38414.4。求:其对应的二进制表示。分析:double类型共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位:    最高位63位是符号位,1表示该数为负,0表示该数为正;    62-52位,一共11位是指数位;    51-0位,一共52位是尾数位。    步骤:按照IEEE浮点数表示法,下面先把38414.4转换为十六进制数。    把整数部

7、和小数部分开处理:整数部直接化十六进制:960E。小数的处理:0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……    实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了。隐藏位技术:最高位的1不写入内存(最终保留下来的还是52位)。    如果你够耐心,手工算到53位那么因该是:38414.4(10)=1001011000001110.0110011001100110011001100110011001100(2)科学记数法为:1.0010110000

8、011100110011001100110011001100110011001100,右移了15位,所以指数为15。或者可以如下理解:1.0010110000011100110011001100110011001100110011001100×2^15    于是来看阶码,按IEEE标准一共11位,可以表示范围是-1024 ~ 1023。因为指数可以为负,为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。