标签:div 整数 编写 使用 class amp integer OLE 符号
给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。
示例 1:
输入: 16
输出: true
示例 2:
输入: 5
输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
32位数如果是4的幂,那么只有奇数位有且只有一个1,偶数位都是0。判断条件为:
1. 与0xaaaaaaaa做与运算结果为0。(a=1010)
2. num & (num - 1) == 0,说明只有1位的 1
public boolean isPowerOfFour(int num) { if (num == 0) { return false; } if (((num & 0xaaaaaaaa) == 0) && (num & (num - 1)) == 0) { return true; } else { return false; } }
public boolean isPowerOfFour(int num) { if (((num & 0xaaaaaaaa) == 0) && (Integer.bitCount(num) == 1)) { return true; } else { return false; } }
标签:div 整数 编写 使用 class amp integer OLE 符号
原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/11366495.html