天天看點

《算法技術手冊》一3.4 浮點計算

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)。

繼續閱讀