Binary 二进制有符号数字除以2(冗余二进制表示)

Binary 二进制有符号数字除以2(冗余二进制表示),binary,hardware,vhdl,Binary,Hardware,Vhdl,如何在二进制有符号数字(冗余二进制表示)中进行2除法?移位不能正常工作?冗余二进制表示法只是以下形式的表达式: \sum_{i=0}^n d_i 2^n 其中,dui是从比{0,1}更大的集合中提取的 除以2或向右移动会导致 \sum_{i=0}^{n-1} d_{i+1} 2^n + f(d_0) 诀窍在于如何调整du0的冗余表示 如果您的RBR的数字形式为{0,1,2},最低有效位为2,则必须将1添加到结果中进行补偿,因此f(0)=0,f(1)=0,f(2)=1应该可以工作 4=12基

如何在二进制有符号数字(冗余二进制表示)中进行2除法?移位不能正常工作?

冗余二进制表示法只是以下形式的表达式:

\sum_{i=0}^n d_i 2^n
其中,
dui
是从比
{0,1}
更大的集合中提取的

除以2或向右移动会导致

\sum_{i=0}^{n-1} d_{i+1} 2^n + f(d_0)
诀窍在于如何调整
du0
的冗余表示

如果您的RBR的数字形式为
{0,1,2}
,最低有效位为2,则必须将
1
添加到结果中进行补偿,因此
f(0)=0
f(1)=0
f(2)=1
应该可以工作

  • 4=12基数2
    ,因此
    12基数2>>1
    =
    1+f(2)
    =
    1+1
    =
    2基数2
    =
    2
  • 6=102基本2
    ,因此
    102基本2>>1
    =
    10基本2+f(2)
    =
    11基本2
    =
    3
通过设置
f(-1)=-1
,可以为有符号冗余二进制表示(即
{-1,0,1}
中的
di
)获得类似的结果

  • 1=1(-1)\u base2
    ,因此
    1(-1)\u base2>>1
    =
    1+f(-1)
    =
    1-1
    =
    0
因此,最终单纯的移位方法是可行的,您只需要一个模糊因子来解释移位数字的任何冗余编码


如果您选择的RBR包含更多选项,则需要相应地调整模糊系数。

您的目标体系结构是什么?ASIC?FPGA?你会使用软件吗?您也应该告诉我们更多关于您的具体RBR。