第三章计算机处理小数运算时出错的原因,这一章说明了计算机进行小数运算时的机制。让我了解到它的运算为何出错以及如何避免出错。首先3.1节,将0.1累加100次也得不到十。通过将结果输出到显示器上的c语言程序。显示结果并不是10来引入问题,计算机内部是如何处理小数的?为何程序没有故障却出现这样的结果?自然而然的引出用二进制数表示小数的方法,说明了使用二进制数来表示整数和小数的方法有很大不同,然后再进一步说明计算机运行出错的原因是有一些十进制数的小数无法转换成二进制数。(用0.1来举例)因此无法正确表述的数值最后都变成了近似值,然而计算机无法处理无限循环的小数。
3.4节什么是浮点数?告诉了我计算机是以什么的表现形式来处理小数。在编程语言中有两种表示小数的数据类型即双精度浮点数类型和单精度浮点数类型。数据用符号、尾数、指数来三部分表示。3.5节则具体讲述正则表达式和EXCESS系统。浮点数可以用不同的形式来表示同一个数值。并具体展示了单精度浮点数尾数部分的正则表达式及单精度浮点数指数部分的EXCESS系统表现3.5节则用程序来确认所讲。相互印证。来到最后3.7节如何避免计算机计算出错?一是无视这些错误,二是将小数替换成整数来计算。3.8节补充说明了二进制数和十六进制数的关系,在实际程序中会经常用十六进制数来代替二进制数。在数据开头加上0x就可表示十六进制数。二进制数的四位正好相当于十六进制的一位。会使数据表达更清晰。(位数减少)