twzheng's cppblog

『站在风口浪尖紧握住鼠标旋转!』 http://www.cnblogs.com/twzheng

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  136 随笔 :: 78 文章 :: 353 评论 :: 0 Trackbacks

判断一个数是否为2的N次方
n&(n-1)==0

posted on 2007-03-26 14:11 谭文政 阅读(1978) 评论(3)  编辑 收藏 引用 所属分类: 基础知识

评论

# re: 判断一个数是否为2的N次方 2007-04-16 18:35 anthony
其实就是根据二进制的原理,将数转换为二进制后,如果是2的N次方,则其最高位为“1”,后面的都为“0”,而n-1即为除高位外全为“0”,利用了在计算机内的数全是2进制,所以利用与关系,呵呵,不错  回复  更多评论
  

# re: 判断一个数是否为2的N次方 2008-08-29 13:50 rrrrrrrrr
大错特错  回复  更多评论
  

# re: 判断一个数是否为2的N次方 2010-12-09 09:21 xiaoqi
public static boolean getResult(int num) {
if (num <= 1) {
return false;
} else {
return ((num & (num - 1)) == 0) ? true : false;
}
}

public static void main(String[] args) {
System.out.println(getResult(32));
}  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理