题目描述:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
思路:1)步骤:
1)整数n和1进行与运算,结果为真则计1;
2)将1进行左移(为2)再和n进行与运算,结果为真则计1;
3)依次循环,直到最后。
代码:
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
res = 0
detector = 1
for i in range(32):
if n & detector:
res += 1
detector = detector << 1
return res
题目: 判断一个二进制数中1出现的次数是技术还是偶数
思路:
def odd(n):
flag=0
while n:
flag=n^flag
n=n>>1
m=flag&1
if m==1:
print("奇")
else:
print("偶")