計算機算法之定點數
發布時間:2008/12/17 0:00:00 訪問次數:912
表1給出5種不同整型數表達式的3位編碼。
表1 有符號二進制數的常規編碼
1.無符號整數(unsigned integer)
設x是一個ⅳ位無符號二進制數,則其范圍是[0,2n - 1],表達式如下:
其中揚是x的第n位二進制數字(也就是xn∈[0,1])。數字xo稱作最低有效位(least significantbit,lsb),具有相當于個位的權重。數字xn-1)就是最高有效位(most significant bit,msb),具有相當于2n-1的權重。
2.有符號數值(signed-magnitude,sm)
在有符號數字表示法中,數字和符號是單獨表示的。第一位xn-1(即msb)代表符號,余下的n-1位代表數字,表達式如下:
這一表達式的范圍是[-(2n-1-1;),2n-1-1],有符號數字表示法的優點就是簡化了溢出的禁止,但缺點就是加法不得不根據哪一個操作數更大而分開來運算。
3.二進制補碼two’s complement,2c)
有符號整數的n位二進制補碼表達式如下:
其表達式的范圍是[-2n-1,2n-1-1]。二進制補碼表示法是目前dsp領域內最為流行的有符號數字表示法。這是因為它使得累加多個有符號數值成為可能,而且最終結果是在n位范圍內,我們可以忽略任何算術上的溢出。例如我們計算兩個3位數,其過程如下:
溢出可以忽略。所有的計算都是取模2n。這樣就有可能出現不能夠正確表示中間值的情形,但只要最終值有效,結果就是正確的。例如計算3位的數字2+2-3,會得到一個中間值010+010=1002c,也就是-410,但是結果100 - 011=100+101=0012c,是正確的。
二進制補碼還可以用來實現模2n算法,而且不需要在算法中作任何改動。
4.二進制反碼(也稱作1的補碼,one’s complement,1c)
n在二進制反碼數字表示法可以整數范圍是[-(2n-1+1),2n-1-1]。在二進制反碼中,正整數和負整數除了符號位之外具有相同的表示方法。也就是說,事實上0需要額外的表達式。二進制反碼中有符號標準表達式如下:
例如,在表1第三列中給書的3和-3的3位二進制反碼表達式。
請看下面的簡單示例。
在二進制反碼中需要“進位回繞(carry wrap-around)”加法。在最高有效位與最低有效位相加得到正確結果時,就會出現進位。
盡管如此,這種數字表示法還是能夠有效地實現模2n-1運算,而且不需要校正。因此二進制反碼在實現特定的dsp算法時,還是有其特殊價值的。
5.減1表示法(diminished one system,d1)
減1表示法是一種有偏移的數字表示法。正整數與二進制補碼相比減少了1。n+1位d1數值范圍是[-2n-1,2n-1-1](不含0)。d1數字表示法的編碼規則定義如下:
從下面兩個d1數相加可以看到,對于d1而言還必須計算補碼和顛倒進位的加法。
數不需要在算法上作任何改動就能夠有效地實現模2n+1運算。
6.偏移數制(bias system)
偏移數制對所有數都有一個偏移量。偏移的值通常位于二進制數范圍的中間,也就是bias=2n-1-1。例如:對于3位的二進制數,偏移量應該是23-1-1=3。n位偏移數的范圍是[-2n-1-1,2n-1]。0就編碼成偏移量。偏移數制的編碼規則定義如下:
我們可以看到,對于每次加法,都需要減掉偏移量,而對于每次減法,都需要加上偏移量。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
表1給出5種不同整型數表達式的3位編碼。
表1 有符號二進制數的常規編碼
1.無符號整數(unsigned integer)
設x是一個ⅳ位無符號二進制數,則其范圍是[0,2n - 1],表達式如下:
其中揚是x的第n位二進制數字(也就是xn∈[0,1])。數字xo稱作最低有效位(least significantbit,lsb),具有相當于個位的權重。數字xn-1)就是最高有效位(most significant bit,msb),具有相當于2n-1的權重。
2.有符號數值(signed-magnitude,sm)
在有符號數字表示法中,數字和符號是單獨表示的。第一位xn-1(即msb)代表符號,余下的n-1位代表數字,表達式如下:
這一表達式的范圍是[-(2n-1-1;),2n-1-1],有符號數字表示法的優點就是簡化了溢出的禁止,但缺點就是加法不得不根據哪一個操作數更大而分開來運算。
3.二進制補碼two’s complement,2c)
有符號整數的n位二進制補碼表達式如下:
其表達式的范圍是[-2n-1,2n-1-1]。二進制補碼表示法是目前dsp領域內最為流行的有符號數字表示法。這是因為它使得累加多個有符號數值成為可能,而且最終結果是在n位范圍內,我們可以忽略任何算術上的溢出。例如我們計算兩個3位數,其過程如下:
溢出可以忽略。所有的計算都是取模2n。這樣就有可能出現不能夠正確表示中間值的情形,但只要最終值有效,結果就是正確的。例如計算3位的數字2+2-3,會得到一個中間值010+010=1002c,也就是-410,但是結果100 - 011=100+101=0012c,是正確的。
二進制補碼還可以用來實現模2n算法,而且不需要在算法中作任何改動。
4.二進制反碼(也稱作1的補碼,one’s complement,1c)
n在二進制反碼數字表示法可以整數范圍是[-(2n-1+1),2n-1-1]。在二進制反碼中,正整數和負整數除了符號位之外具有相同的表示方法。也就是說,事實上0需要額外的表達式。二進制反碼中有符號標準表達式如下:
例如,在表1第三列中給書的3和-3的3位二進制反碼表達式。
請看下面的簡單示例。
在二進制反碼中需要“進位回繞(carry wrap-around)”加法。在最高有效位與最低有效位相加得到正確結果時,就會出現進位。
盡管如此,這種數字表示法還是能夠有效地實現模2n-1運算,而且不需要校正。因此二進制反碼在實現特定的dsp算法時,還是有其特殊價值的。
5.減1表示法(diminished one system,d1)
減1表示法是一種有偏移的數字表示法。正整數與二進制補碼相比減少了1。n+1位d1數值范圍是[-2n-1,2n-1-1](不含0)。d1數字表示法的編碼規則定義如下:
從下面兩個d1數相加可以看到,對于d1而言還必須計算補碼和顛倒進位的加法。
數不需要在算法上作任何改動就能夠有效地實現模2n+1運算。
6.偏移數制(bias system)
偏移數制對所有數都有一個偏移量。偏移的值通常位于二進制數范圍的中間,也就是bias=2n-1-1。例如:對于3位的二進制數,偏移量應該是23-1-1=3。n位偏移數的范圍是[-2n-1-1,2n-1]。0就編碼成偏移量。偏移數制的編碼規則定義如下:
我們可以看到,對于每次加法,都需要減掉偏移量,而對于每次減法,都需要加上偏移量。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
熱門點擊
- Bi-CMOS微電子技術簡介
- 半導體電致發光基礎理論
- 分布反饋激光器(DFB-LD)
- 全半導體布拉格反射鏡簡介
- 交流電流測量電路的工作原理
- SOI微電子技術簡介
- 電波傳播的菲涅爾區
- VCSEL光腔的設計
- 光發射器件能帶結構
- 接觸式/接近式光刻機
推薦技術資料
- FU-19推挽功放制作
- FU-19是國產大功率發射雙四極功率電二管,EPL20... [詳細]