前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode342. 4的幂

LeetCode342. 4的幂

作者头像
mathor
发布2018-07-24 15:25:28
4410
发布2018-07-24 15:25:28
举报
文章被收录于专栏:mathormathor
image
image

 这是上一道题2的幂的进阶,首先我们看和2的幂有什么不同。2的幂有1,2,4,8......,而4的幂有1,4,16,64,也就是说少了2,8,32......,我们再观察一下他们的二进制数  1:1  2:10  4:100  8:1000  16:10000  我们发现,满足4的幂的条件就是,在满足2的幂的前提下,二进制中1的位置必须是在奇数位。那么如何判断在奇数位?其实只要让其和0101 0101 0101 0101 ...这个二进制数对应的十进制做&即可,0101转换成十进制是5,那么最多的0101构成的十进制就是0x55555555

代码语言:javascript
复制
class Solution {
    public boolean isPowerOfFour(int num) {
        if(num <= 0)
            return false;
        boolean a = (num & (num - 1)) == 0;
        boolean b = (num & 0x55555555) != 0;
        return a && b;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档