0
如何在二進制符號數字(冗餘二進制表示)中進行2除法?轉移不會正常工作?在二進制符號數字(冗餘二進制表示)中除以2
如何在二進制符號數字(冗餘二進制表示)中進行2除法?轉移不會正常工作?在二進制符號數字(冗餘二進制表示)中除以2
冗餘二進制表示只是形式的表達:
\sum_{i=0}^n d_i 2^n
其中d_i
的從大集合不僅僅是{0,1}
繪製。
除以2或右移位需要,爲了
\sum_{i=0}^{n-1} d_{i+1} 2^n + f(d_0)
訣竅進來如何處理調整用於冗餘表示爲d_0
。
如果您的RBR有數字的形式{0,1,2}
並具有最低顯著位,那麼你將不得不增加1
的結果補償,所以f(0) = 0
,f(1) = 0
,f(2) = 1
應該工作2。
4 = 12_base2
,所以12_base2 >> 1
= 1 + f(2)
= 1 + 1
= 2_base2
= 2
如預期。6 = 102_base2
,所以102_base2 >> 1
= 10_base2 + f(2)
= 11_base2
= 3
你可以通過設置f(-1) = -1
(在{-1,0,1}
d_i
即)的簽署冗餘二進制表示類似的東西。
1 = 1(-1)_base2
,所以1(-1)_base2 >> 1
= 1 + f(-1)
= 1 - 1
= 0
所以最終只是轉移天真的方法沒有工作,你只需要一個修正因子佔平移後的數字的任何冗餘編碼。
如果您選擇的RBR包含更多選項,則需要相應地調整巧妙因子。
你的目標架構是什麼? ASIC? FPGA?你可以使用軟件嗎? 你應該告訴我們更多關於你的* specific * RBR的信息。 – 2010-05-06 16:18:08