读书人

怎么找到大于某个数而且是2的幂的最小

发布时间: 2013-03-29 14:24:52 作者: rapoo

如何找到大于某个数而且是2的幂的最小整数?

在GPU或其他并行编程中的规约算法,经常要用到大于某个数而且是2的幂的最小整数,来实现折叠计算。但是怎么来找到这个数呢?下面给出三种方法,本人觉得第三种算法最好!

方法一:

unsigned int GetNoSmall2PowNum3(unsigned int num){if (num<=1) return num;if (num & (num-1)) {unsigned int r=1;while(num){num>>=1;r<<=1;}return r;}else{return num;}}

如果有更高效的方法请分享!

读书人网 >编程

热点推荐