首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-03-29 
如何找到大于某个数而且是2的幂的最小整数?在GPU或其他并行编程中的规约算法,经常要用到大于某个数而且是2

如何找到大于某个数而且是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;}}

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

热点排行