首页 > 其他 > 详细

我理解消化后的浮点数存储

时间:2018-10-24 14:13:23      阅读:132      评论:0      收藏:0      [点我收藏+]

昨天开始学习C语言,记录下学习笔记:

 

1. 规定单精度浮点数用32bit表示(4Byte):

首位为符号位(0正1负),

8位指数位(表示小数位应该乘以2的多少次方),

23位小数位(十进制原值用二进制表示并规整为科学计数法后带一位整数的二进制小数,由于整数位必须为1所以省略整数部分,只保存小数部分)。

 

2. 规定双精度浮点数用64bit表示(8Byte):

首位为符号位,

11位指数位,

52位小数位。

 

3. IEEE规定指数部分需要加上偏移值 技术分享图片 ,其中的 技术分享图片 为存储指数的比特的长度,技术分享图片 =8时偏移值为127,e=11时偏移值为1023。

 

4. 以下图为例:

0.15625(10)= (2^-3 + 2^-5)(10) = 0.00101(2) = (1.01 * 2^-3)(2),

所以阶码为 (-3 + (2^(8-1) - 1))(10) = (-3 + 127)(10) = 124(10) = 0111 1100(2)

小数部分为 1.01 后补21个0后的小数部分,即形成下图所示的存储格式。

此为单精度浮点数的存储方式,双精度浮点数的存储方式同理,只不过阶码的移码是1023(+1023(10))。

技术分享图片

截图来源:http://www.runoob.com/cprogramming/c-variables.html

 

关于IEEE754的更多详情参见百度百科IEEE754标准:https://baike.baidu.com/item/IEEE%20754/3869922?fr=aladdin

我理解消化后的浮点数存储

原文:https://www.cnblogs.com/mobius2018/p/9842575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!