【C语言——浮点数在内存中的存储(补充篇)】

本文详细解释了IEEE754标准如何表示二进制浮点数,包括符号位、有效数字M、指数E的存储方式,以及浮点数从内存取出时的不同情况。
摘要由CSDN通过智能技术生成

一.概况 

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

以下形式:

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

1.(-1)^表示符号位,当s=0时,V为正数;当s=1,V为负数。

2.M表示有效数字,M是大于等于1,小于2的。

3.2^E表示指数。

 

 二.存储过程

IEEE754对有效数字M和指数E,还有一些特别的规定。

     M:  根据前面的介绍M可以写成1.xxxxxxxx的形式,在计算机内部存储时默认这个数的第一位

有效位数字总为1,故在内存中只需要保存小数点后面的数字(二进制表示),等到读取数据的时

候再把前面的1 补上去。这样也可以使小数点后面的有效位保留的更精确。

      E:      E为一个无符号整数(0~255/0~2047),它在 内存中存储的时候需要找一个中间数

(127/1023)。比如2^10的指数E为10,所以E保留在内存中的数字为137,即10001001。

三.浮点数从内存中取出的过程

浮点数从内存中取的时候分为三种情况:

·E不全为0或1 :由前面放(存取)的过程倒着来就可以。

eg:0.5的二进制的形式为0.1,由于规定正整数部分必须为1,即小数点向右移动一位,则为1.0*2^(-1),其阶码为-1+127=126,表示为01111110,而尾数1.0去掉整数部分为0,补齐0到23位0000 0000 0000 0000 0000 000

其二进制形式表示为0 01111110 0000 0000 0000 0000 0000 000

·E全为0: 这时,浮点数的指数E等于1-127(1023)即为真实值,有效数字M不在加上第一位的1,而是还原为0.xxxxxxxx的小数。这样做是为了表示+(-)0,以及接近很小的数字。

·E全为1:这时,如果有效数字M全为0,表示+(-)无穷大(正负号取决于符号位s).

如有内容错误,还望指出!谢谢!!

关注主播,优质内容不断更新!

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小峰编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值