Leetcode231. 2的幂 题目: 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 题解: 如果一个数 n n n是2的幂次方,那么这个数的二进制第一位为1,其余为0; 而 n − 1 n-1 n−1的二进制位首位为0,其余位为1; 将 n n n和 n − 1 n-1 n−1做与运算,如果为0,则 n n n为2的幂次方。 scala代码如下: def isPowerOfTwo(n: Int): Boolean = { //n和n-1的位运算 val s = n & (n - 1) n > 0 && (s == 0) }