定點DSP不能直接處理小數,程式設計時處理小數有3種方法:
① 把變數定義成float類型。此方法程式量最小,但編譯出來的程式碼最大。
② 把整數變數放大來表示小數。這是許多開發定點DSP的程式設計師經常使用的方法,但程式不具有可移植性。
③ 採用整數定標的方法來決定小數,即採用Q格式來表示小數。對於定點處理器而言,不管定義哪種類型的資料最終都採用整數資料進行具體的運算。
整數定標的實質就是透過確定小數點位於哪一位,從而確定小數的精度,通常用Q格式表示。一個32位有符號定點數的Q格式如下:
其中,S是符號位,I是整數部分,f是小數部分。定點數的大小按下式計算:
例如Q15定點數的小數點位於第15位的右側,小數0.25用Q15表示則為2000H。這樣很簡單地用一個整數格式表示了一個小數,對於定點DSP來說處理小數就跟處理整數完全相同了。要注意的是,採用Q格式資料進行演算法設計的時候必須考慮溢出,各種Q格式資料表示的範圍和精度參考文獻。