《程序是怎样跑起来的》第三章
这一章讲述了计算机为什么在计算小数时会出错。就例如书中的0.1累加100次也得不到10,这就是因为一些十进制的小数无法转化为二进制,小数点后面四位用二进制数表示时的数值范围为0.0000 ~ 0.1111。因此,这里只能表示0.5,0.25,0.125,0.0625这四个二进制小数点后面的位权组合组成的小数。因此计算机在计算一些小数的时候会出错。
浮点数是用符号,尾数,基数和指数这四个部分来表示的小数。说到浮点数,我们知道它分为单精度和双精度。单精度浮点数一共32位,其中包括1位符号,8位指数,23位尾数。双精度浮点数包括1位符号,11位指数,52位尾数。
尾数部分使用正则表达式,可以将表现形式多样的浮点数统一为一种表现行式。十进制数的浮点数遵循小数点前面是0,后面第一位不能是0的规则;二进制中将小数点前面的值固定为1的正则表达式。指数部分中使用的EXCESS系统是通过将指数部分表示范围的中间值设置为0,使得负数不需要用符号来表示。
最后关于如何避免计算机计算出错。1.回避:根据程序目的不同,有时一些微小的偏差不会造成什么问题;2.将小数转化为正数
进行正数运算只要不超过可处理的数值范围,就一定不会出现问题;3.BCD编码也是一种使用二进制表示十进制的方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理