- 位1的个数; 231. 2的幂; 190. 颠倒二进制位。
题目191. 位1的个数
描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
解法1:简单的按位与和移位操作
1 | def hammingWeight(self, n: int) -> int: |
解法2:利用位运算公式,n & (n - 1)
可以打掉最低位的1
1 | def hammingWeight(self, n: int) -> int: |
题目231. 2的幂
题解:2的幂,也就是二进制数只有一个1,那么继续使用去掉最低位的1的公式
1 | def isPowerOfTwo(self, n: int) -> bool: |
题目190. 颠倒二进制位
这个题目就是简单的移位操作
1 | def reverseBits(self, n: int) -> int: |