`
aigo
  • 浏览: 2538088 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

如何计算出大于某个值的最小2的次幂

    博客分类:
  • Math
阅读更多

 

例如,求出大于或等于12、13、15等数值的最小2的次幂:16;同理,大于等于5、6、7的最小次幂为8。

 

//v必须是一个32位整数
int roundup_power_of_2(unsigned int v)
{
	v--;
	v |= v >> 1;
	v |= v >> 2;
	v |= v >> 4;
	v |= v >> 8;
	v |= v >> 16;
	v++;
	return v;
}

 

更多位相关算法:

http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics