CSI-III:信息的表示与处理-数值陷阱(二)

本文详细介绍了浮点数在计算机中的表示和处理,特别是围绕IEEE754标准展开,探讨了浮点数的二进制表示、误差、非规格化数和特殊值的情况。通过实例解析了浮点数的编码过程,并讨论了舍入策略及其在浮点运算中的影响。

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

     本篇继续上一篇,进行浮点数的介绍,浮点数的表示并不像整型那样简单,其在计算机中的运算也会使用更多地时钟周期。我们都知道计算机并不能绝对正确的表示浮点数,都是在允许的精度范围内进行计算,这是由计算的信息表示方式(0和1)所决定的。所以,对于浮点数的误差,我们更应该谨慎和小心,这样才能够在编写的程序中避免可能的病态问题。

    谈到浮点数,或许你能想到IEEE(读作“Eye-Triple-Eee”)754标准。这个标准的制定是从1976年开始由Intel赞助的,在8087设计的同时,8087是一种为8086处理器提供浮点支持的芯片。他们请Kahan作为顾问,帮助设计未来处理器浮点标准。并支持Kahan加入IEEE委员会,后来IEEE最终制定的标准非常接近于Kahan为Intel设计的标准。这样IEEE754标准也就诞生了

1. 二进制小数

        在理解浮点数之前我们先看下含有小数值的二进制数字。首先先看下我们所熟悉的十进制是如何来表示小数的,十进制表示法所使用的表示形式为:dmdm-1…d1d0.d-1d-2…d-n,其中每个十进制数di的取值为0~9,这个表示的数值d为:

                                                        

类似的,我们考虑形如bmbm-1…..b1b0.b-1b-2…b-n-1b-n的表示法,其中每个二进制数字bi的取值为0或者1,这种表示方法表示的数b定义如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值