第三章我学习了计算机进行小数运算时出错的原因,了解到了为什么万能的计算机在运算时会出现错误。通过书上给了我们一段c语言实例告诉我们有一些十进制数的小数无法转化成二进制数。例如:十进制数0.1就无法用二进制数正确表示,小数点后面即使有几百位也无法表示。因为计算机这个功能有限的是机器设备是无法处理无限循环小数的,因此在遇到循环小数时他常常只会取他的近似值。

  关于浮点数。  因为浮点数的表现形式有很多种,所以在计算时需要有一个规则来正确的表达防止麻烦情况出现。在二进制数中的表达方式就是讲二进制数表示的小数左移或右移数次后,整数部分的第一位变为一,第二位之后都变成0。而且,第一位的1在实际的数据中不保存。由于第一位必须是1,因此,省略该部分后就节省了一个数据位,从而也就可以表示更多的数据范围。

  那么,我们如何避免计算机出错呢?在此有两种方法。第一种就是“回避策略”,即无视这些错误。因为虽然会造成计算上的误差,但其实误差是极其小的,可以把它的存在当做空气。 另一种策略就是把小数转换成整数来计算。计算机在进行小数计算时可能会出错,但进行整数计算时一定不会出现问题。因此计算时可以将小数暂时变为整数,等到计算结果出来后再把它变为小数即可。

二进制数和十六进制数之间的关系和转变和我们书上讲的一般无二,在此不一一。