2.1 引言
2.1.1 浮點數簡介
浮點數,顧名思義,它的小數點位置是浮動的,跟隨最高位變動,因此它的絕對精度也是變動的。在CPU架構中,浮點數運算通常由FPU(CPU的協處理器)來處理,指令集參照IEEE 754實現,但是實踐中不一定會完全嚴格遵守這個標準。例如:在同一個CPU里FPU和SSE指令得到的結果不一致,因此對確定性有要求的程序不能直接使用浮點數來計算。而整數運算是確定的,本章在整數運算的基礎上,實現了一種簡單且高效的定點數運算方案。
2.1.2 32位浮點數(單精度)表示原理
在游戲開發中,如果使用浮點數,則通常使用32位的單精度浮點數。如表2.1所示為32位浮點數的結構。
表2.1 32位浮點數的結構

數學公式為

其中,S為符號位,S=0時為正數,S=1時為負數。E為階碼,能表示0~255的范圍,對應2的冪次-127~128。M表示尾數,表示范圍為0~8388607,對應1.0~1.99999988。
這里,浮點數的精度是不固定的,有效數的位數為7~8位。