博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我理解消化后的浮点数存储
阅读量:6993 次
发布时间:2019-06-27

本文共 708 字,大约阅读时间需要 2 分钟。

昨天开始学习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

你可能感兴趣的文章
日历实现
查看>>
病历问题
查看>>
多线程下的单例模式
查看>>
Ansible批量部署工具的安装
查看>>
面经中高频知识点归纳(五)
查看>>
[转] 对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解
查看>>
Dubbo 是一个分布式服务框架
查看>>
js数组排序实用方法集锦
查看>>
calculate the time of methods
查看>>
python与正则表达式
查看>>
删除多个附件
查看>>
目标检测之显著区域检测---国外的一个图像显著区域检测代码及其效果图 saliency region detection...
查看>>
Laravel之路——事务
查看>>
WCF分布式开发步步为赢(10):请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)....
查看>>
python的struct模块
查看>>
python进程和线程中的两个锁
查看>>
Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库
查看>>
(最小生成树 次小生成树)The Unique MST -- POJ -- 1679
查看>>
括号匹配(二) -- 经典动态规划
查看>>
在jsp中的css
查看>>