1.实战常用的位运算操作
X&1==1 OR==0 #判断奇偶数 X%2==1
X=X&(X-1) #清零最低位的1
X&-X #得到最低位的一
2.题目:位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
3.答题思路:
采用位运算X=X&(X-1),举例说明,X=12的二进制数为1100,X-1=11,二进制数为1011, X&(X-1)=8(1000),每经过一次X=X&(X-1)运算,则会清除一次最低位的1,res+1.直到X为0.
4.代码实现:
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
res=0
while(n):
n=n&n-1
res+=1
return res