3.4 浮点计算
由于书中的某些算法需要使用到数值计算,因此这里需要简单讲述一下现代计算机在数值计算中的作用以及某些先天不足。众所周知,计算机是对存储在CPU寄存器的值进行一些基本运算。随着计算机架构从20 世纪70 年代流行的8位Intel处理器演进到如今广泛存在的64位架构(如Intel的Itanium以及Sun的Sparc处理器),寄存器的大小也随之发生了翻天覆地的变化。CPU通常支持对存储在寄存器的整数进行一些基本的运算,例如ADD、MULT、DIVIDE和SUB。浮点计算则交给了浮点运算单元(FPU)按照IEEE 关于二进制浮点算术的标准(IEEE 754)来高效处理。
整数(如布尔型、8位短整型以及16位或者32位整数)运算通常是处理器的强项。所以一般都需要考虑浮点和整数运算的性能差异来优化程序。不过,相对于整数运算,现代CPU已经在浮点运算上做了大量的改进和优化,即便如此,当需要使用浮点计算时,开发人员还是需要注意这些问题(Goldberg,1991)。