微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 笔试题判断被5除问题请教

笔试题判断被5除问题请教

时间:10-02 整理:3721RD 点击:
有个16bit的寄存器,每个时钟周期左移一位,最高位舍去。设计一个方法判断该值是否能被5整除,并写出verilog代码。

应该不难吧,其实左移一位,低位补0,应该很容易做,被5整除就是按照特征,判断低3位是否为0或者5就可以了,电路设计思路也就出来了

楼上说的没错!

2# amin2008
俺的思路也是这样,呵呵

谢谢。

不是这么简单的吧。简单把0-40被5整除的二进制写一些,就知道没什么特别规律。

:victory::victory::victory:
思考中

判断低3位是否为0或者5,不是这样简单吧,比如15(1111)低三位就不是0或5,思考中。

haohaohoa

先把二进制代码转换成BCD码(bin to bcd),再判断BCD码个位是否为0或5(全零除外)。
我也没怎么仔细想,希望大家可以想出更好的方法。

直接除以5,取模不行么?

移位的话,不是用移位减来实现除法吧?我好像只能想到这种最笨的办法了。

应该要用到移位寄存器的特点

移位减来实现除法,这种方法好像行

只要單數位元沒有1就可以整除

有点意思啊

好久的帖子都被顶起来的,其实转换成十六进制,各个位的数加起来,只要能被5整除,那么这个十六进制数就能被5整除。

看最低三位严重不对,这个问题还是有点难度的,考虑每一位的权重,利用余数跳转状态机可以实现

向各位学习。

既然是先向左移1位舍掉最高 那么低位补0 再判断是否是5的倍数
转换为10进制后能被整除的个位为0或5
而低位补的为0 那么个位不可能为5
只能为0了

呵呵,学习了

还有没有其他好方法?

....................

你要加强学习

有很多种方法,有“笨”方法,也有巧方法,如17楼的方法。很有意思的题目。

17楼的高段,分析出了16*16。的结果个位数永远是6,即5余1,学习了

学习了,里面藏了些强人

楼上正解,2进制表示十进制貌似没啥规律,转BCD码之后容易判断多了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top