判断某一数字是否为2的幂次方
2的幂次方是:1是2的0次幂,2是2的1次幂,4是2的2次幂,……等等。
(1) 通过位运算判断2的幂次方
通过二进制来看2的幂次方。
2的0次幂是1,对应二进制:0000 0000 0000 0000 0000 0000 0000 0001
2的1次幂是2,对应二进制:0000 0000 0000 0000 0000 0000 0000 0010
2的2次幂是4,对应二进制:0000 0000 0000 0000 0000 0000 0000 0100
2的3次幂是8,对应二进制:0000 0000 0000 0000 0000 0000 0000 1000
以此类推…..
然后2的幂次方都满足一个特点:n&(n-1)等于0。
&运算符表示与运算,&运算特点:二进制运算,全1则为1,有0则为0。
举例:4&3
根据2的幂次方存在这种特点,则可以很快的判断,一个数字是否为2的幂次方。
public boolean isTwoPower(int n) {
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134836.html