目录
前言
今日头条实习生面试,手撕代码题目。
测试源码在这里。
1.右移->判断1的个数
考虑将该数化成二进制,2的幂次方的数用二进制表示的话,只有一位为1,其余为都为0.。题目则变成“如何判断一个二进制数只有一个位为1”。
代码如下:
boolean isPowerOfTwo(int num) {
int count = 0;
if (0 == num)
return false;
while (0 != num) {
if (1 == (1 & num)) {
count++;
}
num = num >> 1;
}
return count == 1;
}