我是靠谱客的博主 幸福哈密瓜,最近开发中收集的这篇文章主要介绍模-n计数器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

通常的做法是将计数器加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计数器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部