posts - 267,  comments - 1127,  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 踏雪赤兔 阅读(525) 评论(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 倍数
  回复  更多评论
  


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
 
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
 
相关链接:




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


LOGO

自我介绍:我系鸣仔,喜爱研究算法,曾是中大ACM队员。 发QQ消息


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

常用链接

随笔分类(290)

随笔档案(267)

文章分类(38)

相册

收藏夹(54)

与博主互动

博客手拉手

搜索

  •  

积分与排名

  • 积分 - 130537
  • 排名 - 5

最新评论

阅读排行榜

评论排行榜

60天内阅读排行