请教一个位运算的题目?

bxb_koala
请教一个位运算的题目?

:em14:  位运算实现除数为非2 的N次方的除法,2 的N次方的除法简单,但是这道题不知如何下手,请达人指点

bxb_koala
up

yuanchengjun
都看不懂你在问什么。
求2的n次方?
除数?

modoke
意思是位运算实现除法  要是2的 直接移位就行 而不是2的怎么做 对吧?

bxb_koala
就是楼上说的意思啊

bxb_koala
没有人知道嘛?自己顶一下

cjaizss
这个题目有点BT,哪里的题目?
我可以用verilog描述除法,却没那个本事用固定位的桶式移位器、非、与、或把电路搭出来.......

[[i] 本帖最后由 cjaizss 于 2008-4-7 12:44 编辑 [/i]]

swordfish.cn
我觉得这多少有像要你设计一个控制器了。

yuanchengjun
不可能很简单的做出来,
2能这么做,是因为数是二进制表示的,

poor-man
浮点数就不知道怎么弄了.

假设被除数是X,除数是Y,商为z,余为t,
则除法满足:X = Y*z + t, 设z为(2n1 + t1),(2n表示2的n1次方,t1为模数),则有:X = Y*(2n1+t1)+t,即: X = Y*2n1 + Y*t1 +t, 同样,Y*t1也可以简化为Y*(2n2+t2),(2n1表示为2的n2次方)....。看出规律了吗!
不错,最后得到的结果就是:X=Y1*2n1+ Y2*2n2+...+Yn+2nn+t1+t2+...tn

[[i] 本帖最后由 poor-man 于 2008-4-7 18:14 编辑 [/i]]

cjaizss
我说说我的看法,这是用组合电路来设计除法器。本来纯组合电路来设计除法器我就觉得挺难(而且没有人会这么设计),而且这里还限定了你的器件..........

scounixadmin
想了几天,说说我的看法吧,不知道对不对。
比如说除数是a的N次方。
1 你可以把这个10进制整数转换为a的进制,譬如说  (data)10=(n1n2n3n4...)a

2 用一个字节表示你获得的进制的一位,比如说(n1n2n3n4)a可以表示为4个字节

3 怎么移位你应该知道了吧

这种方法比较笨,但是的确想不出更好的方法