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