单精度浮点数(Float)与双精度浮点数(Double)

本文探讨了二进制表示十进制小数的挑战,并详细介绍了浮点数的概念,包括单精度浮点数(Float)和双精度浮点数(Double)的存储格式,以及IEEE_754标准在处理浮点数存储和精度问题上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

对于十进制的整数使用二进制表示很简单,但是对于十进制小数如何使用二进制进行存储?十进制的小数又何如使用二进制小数表示?此文章描述了如何将十进制小数转换为二进制小数以及浮点数再内存中时如何进行存储。

二进制小数

在计算机中,无论什么数据,最终存储都为二进制,对于整数部分很容易表示,但是对于非整数则比较困难。例如,十进制数0.125可表示为二进制0.001,怎么得来的?简单的计算可以用0.125不断乘2,结果小于1将二进制位记为0,结果大于1时将二进制位记为1

0.125 * 2 = 0.25  二进制位记作 0
0.25  * 2 = 0.5   二进制位记作 0
0.5   * 2 = 1     二进制位记作 1

所以得出结果为0.001

另外可以把可以把十进制数0.125看做1/2/2/2 = 1*2^-3,十进制1换算为二进制还为1,二进制的负指数则相当于二进制数1右移位,用2的指数记为2^-3

上面的例子因为能够用2的指数表示,所以能够被二进制精确的表达,但是有些情况,则无法使用二进制准确表达,例如一个人尽皆知的例子:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值