第三章主要讲解了计算机在处理二进制、十进制以及小数运算时的原理和可能遇到的问题。在这之前,我们了解到计算机内部是以二进制形式存储数据,但读完第三章后,我对二进制有了更深入的理解,例如二进制与十进制、十六进制之间的转换方式:将二进制数转换为十进制,就是按照位权展开相加;而从二进制转为十六进制时,可以每四位一组转换成对应的十六进制数,不足四位时可以在低位补零。
同时,这一章还详细介绍了浮点数的概念,它是我们通常所说的小数,在计算机中又有单精度浮点数(用F或f表示)和双精度浮点数(用D或d表示)之分,它们的最大字节长度可达64位。浮点数的表示包含了符号位、尾数、基数和指数四部分。其中,符号位用来区分正负,0代表正数,1代表负数;尾数是通过特定规则处理后的二进制数,以确保小数点前固定为1;基数通常是2,即2的幂次;指数则采用“excess系统”表示,比如在某个范围内,中间值设为0,大于中间值的数值表示正指数,小于中间值的数值表示负指数。
对于小数运算错误的原因,文中举例说明,像连续将0.1加100次的结果不等于10的现象,并不是计算机故障或者程序错误,而是由于有些十进制小数无法精确转换为二进制小数。二进制小数在转换回十进制时,其每一位需乘以2的负n次幂求和,得到的是近似值而非精确值。因此,计算机在处理过程中可能会进行截断或四舍五入,这就导致了计算结果出现误差。
总的来说,第三章探讨了计算机如何处理小数运算以及可能出现误差的原因,并提出了解决这些误差的方法,包括接受并忽略微小误差,或者通过变换计算方式避免直接使用浮点数进行运算。