首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言课程学习】:浮点数在内存中的存储

【C语言课程学习】:浮点数在内存中的存储

作者头像
用户11396661
发布2024-12-09 14:46:57
发布2024-12-09 14:46:57
5700
举报
文章被收录于专栏:C++开发C++开发

🍭1.浮点数的表示:

根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成:

V=(-1)^S*M*2^E

1.S S=0,表示浮点数为正。S=1,表示浮点数为负。因为不管是float(单精度浮点型),还是double(双精度浮点型),都是只用一个比特位来存储s,也只需要一位就可以表示数据的正负,所以s要么是0,要么为1。为0的时候,(-1)^0表示数据的正。为1的时候,(-1)^1就表示为负。

2.M 因为M是二进制,只存在0或1,变换E的值可以使M位于1~2。因为M为1.,所以小数点前的1是固定的,所以存储的时候,就不用去管1。只要确定了S,M,E,就可以确定V的值。

3.E E是阶码代数(指数)。

float(单精度浮点数)类型占4个字节(32个比特位)。

double(双精度浮点数)类型占8个字节(64个比特位)。

1.对于32位浮点数,最高位的1位比特位存储S,接下来的8位比特位存储E,最后23位用来存储M.

例如:5.5在内存中存储的数据 (5.5(十进制)=101.1(二进制)=(-1)^0*1.011*2^2=0 00000010 00000000000000000000011)

2.对于64位浮点数,最高位的一位比特位存储S,接下来11位比特位存储E,最后52位用来存储M.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🍭1.浮点数的表示:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档