概述
通常的做法是将计数器加1,再将结果除以n(n为最大值),余数为结果。这种计数器用途很广,如循环队列。
counter = (counter + 1)%n;
相比来讲,使用比较的方法来实现的话效率会更高:
counter = counter + 1;
if( counter >= n )
{
counter = 0;
}
而大多数情况下,与运算的方法显得更加高效,缺点就是最大值不能随意取:
即计数器加1,再与数n=2m - 1(0至m-1位都是1,其他位都是0)
n = 0x3f = 25 - 1 = 31,即 n = 00011111,n为最大值,且是2的倍数减1的数:
counter = (counter + 1) & 0x3f;
最后
以上就是幸福哈密瓜为你收集整理的模-n计数器的全部内容,希望文章能够帮你解决模-n计数器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复