读了第三章之后我才知道原来计算机运算时也会出错,第三章开头的提问也勾引起了我的好奇心。
大家可能都会认为万能的计算机是不会出现错误的,但是我读了这一章后我才知道依然存在程序运行后无法得到正确数值的情况。其中,小数运算就是一个典型的例子。
第三章说明了计算机进行小数处理的机制。也让我了解了计算机在运算时为什么会出错以及应该如何避免出错。我从中了解到有两种避免该问题的方法,第一种就是回避策略,也就是无视这些错误,有时一些微小的偏差并不会造成一些问题另一种方法是把小数转换成整数,等计算结果出来之后用小数表示出来就行了。
读了第二节之后我才知道原来小数也可以用二进制表示。只不过使用二进制数来表示整数和小数的方法却有很大的不同。二进制数小数点前面的位权,第1位是2的0次幂、第2位是2的1次幂……以此类推,小数点后面的位权,第1位是2的-1次幂、第2位是2的-2次幂。
纸面上的二进制数的表示形式,在计算机内部是无法使用的。很多编程语言中都提供了两种表示小数的数据类型,分为双精度浮点数和单精度浮点数。双精度浮点数类型用64位、单精度浮点数类型用32位来表示全体小数。而与浮点数相对的是定点数,使用定点数表示小数时,小数点的实际位置固定不变。浮点数是指用符号、尾数、基数和指数这四部分表示的小数。