float取小数点后几位_float类型的存储方式

在c语言中float函数是单精度的。它在内存中以二进制的形式存储。分为符号位,阶码与尾数三部分。

符号位最为简单,如果你存储的是正数那么符号数就是0。如果是负数,则为1。

下面,我以13.625为例说明阶码与尾数的表示方法。首先,我们取出13.625的整数部为13。对其使用短除法(对该数除以2,直至不能再除的一种方法)结果如下

3aafb557280eff16da9b3920f479e240.png

将各余数自下而上排列,则得到了13的二进制表示。之后,取出13.625的小数部分为0.625对其每次乘2取出整数留下小数,直至得到1。结果如下

6ef1e1de96fa21df920840f643e3facc.png

自上而下将取出的整数排列好,即得0.101。

这样我们就得到了13.625的二进制表示。为1101.101。之后我们需将小数点移动至整数部只有一位。移动后得到1.101101。在此我们将小数点移动了三位。因而三即是该数的指数。而阶码则为指数+127(加127是C语言的内在逻辑,在此我们并不深究。)因而我们得到了13.625的阶码,为130。二进制表示10000010。

至于最后的尾数,将原先得到的1.101101去掉整数部分后在后面补齐17个0即可。(float类型的尾数有23位,若不够,在后补齐0即可。)

最后我们得到了13.625的存储数据

e00831fc77894b4ba077431b5758eea4.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值