關注我的公衆號c137Lab獲取更多相關內容
無符號整數 Unsigned Integer
設 是一個 位無符號二進制數,其範圍爲 ,表示方法如下:
其中 是 的第 位二進制數字(也就是 )。數字 被稱作最低有效位(Least Significant Bit,LSB),具有相當於個位的權重。數字 就是最高有效位(Most Significant Bit,MSB)。具有相當於 的權重。
有符號數值 Signed-Magnitude,SM
位有符號整數中的第一位(即MSB)代表符號,餘下的 位代表數值。範圍爲 .
- 優點:有助於防止溢出。
- 缺點:加法需要根據哪一個操作數更大分開運算。
二進制補碼 Two’s Complement,2C
最爲流行的有符號數字系統, 位二進制補碼的表達範圍爲 ,溢出可以忽略
例如,計算 的值時
不難看出這時溢出可以忽略。
二進制補碼還可以用來實現模 算法而不需要在算法中做任何改動(應用於設計CIC濾波器).
二進制反碼 One’s Complement, 1C
位二進制反碼錶達範圍爲 , 有正零和負零兩種冗餘的表達。
如圖,二進制反碼在運算中需要“進位迴繞(carry wrap-around)”加法。但是其可以有效的實現模 運算,而且不需要矯正,在實現特殊算法(如整數環上的Mersenne變換)時有特殊價值.
減一系統 Diminished one System,D1
減一系統是一種有偏差的系統,正整數與二進制補碼相比減少了1。 位 D1 數值的範圍是 (不含0). D1的編碼規則如下:
爲方便理解,下表爲3位D1編碼的例子:
二進制數 | D1 |
---|---|
011 | 4 |
010 | 3 |
001 | 2 |
000 | 1 |
111 | -1 |
110 | -2 |
101 | -3 |
100 | -4 |
1000 | 0 |
下面是兩個D1數值相加運算的例子:
從上面的例子看出 D1 必須計算補碼和反向進位的加法。D1數值不需要在算法上做出任何改動就能有效實現模 運算(例如實現費爾馬Network Transfer Table,NTT).
偏差系統 Bias System
偏差系統對所有數都有一個偏差(bias),通常 , 位偏差數的範圍是 ,0 就被編碼爲 的值。定義如下:
偏差系統加法實例:
對於加法,每次運算都要減掉偏差,對於減法,每次運算都要加上偏差。偏差能夠簡化數值的比較,可以用於對浮點數指數的編碼中.
參考文獻:Digital Signal Processing with Field Programmable Gate Arrays --U.Meyer-Baese