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