判断2的乘方

参考:算法爱好者

实现一个方法,判断一个正整数是否是2的乘方,是返回true,不是返回false?

将该正整数N转化为二进制,N&N-1 == 0

十进制    二进制    N-1    N&N-1    是否是2的乘方

    8     1000B     111B         0      是

 16                 10000B     1111B    0      是

 32      100000B    11111B        0      是

 100     1100100B    1100011B  1100000B  否

 

posted @ 2017-06-22 16:17  履霜坚冰  阅读(227)  评论(0编辑  收藏  举报