IEEE-754 Floating-Point Conversion

本文探讨了Java和C/C++中浮点数的表示方式,特别是浮点数的内部结构和转换。介绍了浮点数的位表示,如32位float的符号位、指数位和小数部分,并通过示例解释了如何计算浮点数值。还提到了不同编程语言中printf函数精度的影响,以及Java中println和toString方法在显示浮点数时的差异。最后分享了一个关于IEEE-754浮点数转换的资源链接。
摘要由CSDN通过智能技术生成

本是问一朋友关于Java与C/C++中浮点小数的表示的问题,没想到他好好的写了一篇blog来回答我的问题。呵呵,真的谢谢slimzhao(一笑)。

看了他的blog学到了很多,现再引用并总结一下,同时为了记忆。

浮点数格式中的各个部分:
对于float:共32个bits,Bit 31是MSB(Most Significant Bit),Bit 0是LSB(Least Significant Bit),则
Bit 31是符号位,接下来的8位是指数位,指数位被视为一个无符号的数,它与127的差就是以2为底的指数的部分。 最后的23位是小数部分。
 而小数部分是这样规定的:
11001100110011001100110
这是0.9f 的小数部分,共23位,它表示:
1.11001100110011001100110
这样一个以2为基数的小数,小数点前面的1是隐含的,这是一个小技巧以获得额外的一位表示。所以上面的整个数是:
1 + (1/2+1/4) + (1/32+1/64) + (1/512+1/1024) + 1/(1024*8)+1/(1024*16) + 1/(1024*16*8)+1/(1024*16*16)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值