Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57427
  • 博文数量: 25
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 19:56
文章分类
文章存档

2011年(1)

2009年(8)

2008年(16)

我的朋友
最近访客

分类: C/C++

2011-12-21 22:54:41

先想到一个方法, 
先算出2的所有2次方放到一有序数组里,对n在数组里进行2分查找,网上看到另一个NB代码,据说是这个方法速度的3倍

static inline int
is_pow_of_2(uint32_t x) {
return !(x & (x-1));
}

static inline uint32_t
next_pow_of_2(uint32_t x) {
if ( is_pow_of_2(x) )
return x;
x |= x>>1;
x |= x>>2;
x |= x>>4;
x |= x>>8;
x |= x>>16;
return x+1;
}
原理看
http://blog.csdn.net/hmc20071120015/article/details/6822711
阅读(526) | 评论(0) | 转发(0) |
0

上一篇:tcpdump常用几条命令

下一篇:没有了

给主人留下些什么吧!~~