在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5099|回复: 15

[求助] 一个16位数除3有没有简单的实现办法

[复制链接]
发表于 2014-5-30 16:01:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 djqlyy 于 2014-5-30 17:02 编辑

一个16位数除3有没有简单的实现办法,使其在很短的时间出结果?
因为除数是固定的比较小的数3,所以有没有求解的捷径?
发表于 2014-5-30 20:18:00 | 显示全部楼层
可以用查表的方式
发表于 2014-5-31 17:06:20 | 显示全部楼层
回复 1# djqlyy

移位加法来近似计算即可。
发表于 2014-5-31 17:08:11 | 显示全部楼层
回复 3# zhaowenzhe


   计算复杂度根精度有关,当需要精度较高的结果时,连加的个数可能偏多,此时可以仿照booth乘法器的处理形式,采用4-2压缩器来减小连加的个数。
 楼主| 发表于 2014-5-31 19:05:50 | 显示全部楼层
只要商就行,不需要余数,所以精度应该不算高
发表于 2014-5-31 22:56:30 | 显示全部楼层
a/3=0.333333*a,采用一个乘法器就可以了
发表于 2014-6-1 14:21:01 | 显示全部楼层
16比特数a除以3,先将a乘以43691,然后再逻辑右移17比特,可以试试
发表于 2014-6-1 14:22:02 | 显示全部楼层
16比特数a除以3,先将a乘以43691,然后再逻辑右移17比特,可以试试
发表于 2014-6-21 22:17:42 | 显示全部楼层
不知道你除3想要一个什么样的结果,如果要一个近似数,则采用级数的方法(简单说就是二分法)。如果要得到商和余数,可以考虑从从左边往右;用FOR循环,前面补两个0,每次得到的余数拿过来和下一个bit组合成三位数,一直到16BIT除完。
发表于 2014-6-22 11:40:23 | 显示全部楼层
但是如果用循环移位的话延迟就大了,16个周期
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-23 15:16 , Processed in 0.021638 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表