posts - 274,  comments - 1258,  trackbacks - 0
以我愚见,此可算是位操作的精品了。
bool is2Power(int n)
{
    
return n > 0 && (n & (~+ 1)) == n;
}
2006年8月9日补充:
发现还有更简洁易懂的:
inline bool is2Power(int n){
    
return n && !(n&n-1);
}

算法无止境啊~~~
posted on 2006-07-17 16:24 踏雪赤兔 阅读(1204) 评论(7)  编辑 收藏 引用 所属分类: 零件仓库

FeedBack:
# re: 标程:判断一数是否2的幂数
2006-07-18 12:53 | 游子
是精品!  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2006-07-18 19:01 | 我系MM
不错!  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2006-08-15 11:35 | 游子
是不是要
return n && !(n&(n-1));
啊?  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2006-08-15 18:50 | 踏雪赤兔
不必要~C++里加减比位运算优先级高。不过如果你觉得有助于理解,加也可以。  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2006-08-26 01:05 | bug27
好物  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2008-10-26 11:02 | 哈哈
n && !(n&n-1)
不对,对于18来说就错了!  回复  更多评论
  
# re: 标程:判断一数是否2的幂数
2008-10-26 14:33 | 踏雪赤兔
@哈哈 幂数,not 倍数
  回复  更多评论
  
只有注册用户登录后才能发表评论。

百度空间| 见闻日记| 编程感悟
我的twitter


LOGO

自我介绍:百度厂基础平台车间的一名挨踢民工。擅长C++、算法、语言设计、分布式计算,也用过Java,Python, PHP,JS/AS等语言开发。请关注我的twitter (免翻墙版) 发QQ消息


添加到收藏夹 Locations of visitors to this page

常用链接

随笔分类(300)

随笔档案(274)

文章分类(38)

相册

收藏夹(54)

与博主互动

博客手拉手

搜索

  •  

积分与排名

  • 积分 - 399228
  • 排名 - 10

最新评论

阅读排行榜

评论排行榜