题目描述:请实现一个函数,输入一个整数,输出该数二进制表示中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("偶")
本文介绍了一种高效算法,用于计算任意整数转换为二进制表示后,1出现的次数。通过与运算和左移操作,算法能准确地统计二进制数中1的个数,无论是奇数还是偶数个1。此外,文章还提供了一个判断二进制数中1的个数是奇数还是偶数的方法。
889

被折叠的 条评论
为什么被折叠?



