读《程序是怎样跑起来的》第三章有感

本文深入探讨了计算机内部如何处理小数运算,揭示了为何0.1累加100次不能得到精确的10。文章通过C语言程序示例,解析了二进制表示下浮点数的精度损失,并介绍了浮点数、正则表达式及EXCESS系统的基本概念。

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

这一章开头第一小节作者提出了一个问题,就是“将0.1累加100次也得不到10“,我也很纳闷,不理解为啥结果不是10,作者先是用一段C语言程序介绍累加的过程,然后做了解析,程序并没有出现任何语法错误,但是运行的结果并不是10.,因为计算机内部所有的信息都是由二进制的形式来处理的,因此在这一点上整数和小数并无差异,不过用二进制来表示整数和小数的方法却有很大的不同。作者用了一个例子讲述了为什么那个程序无法得到正确的结果,因为计算机是个功能有限的机器,是无法处理无限循环的小数的,因此,在遇到循环小数时计算机会根据变量的数据类型所对应的长度将数值从中间截断或者四舍五入。接着后面讲了什么是浮点数,什么是正则表达式和EXCESS系统,最后是二进制和十六进制的转化,这章的内容不是太难理解,多读几遍就能看懂了。

转载于:https://www.cnblogs.com/wangli155167/p/10324801.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值