题目描述
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例
输入 10
返回值 2
知识点回顾
与操作:给定一个数n,每进行一次n&(n-1)计算,其结果中都会少了一位1,而且是最后一位
代码
# -*- coding:utf-8 -*- class Solution: def NumberOf1(self, n): # write code here count=0 m=n&0xffffffff while m!=0: m=m&(m-1) count+=1 return count
#为什么少写 m=n&0xffffffff 这一句会报错运行超时??
# -*- coding:utf-8 -*- class Solution: def NumberOf1(self, n): # write code here count=0 while n!=0: n=n&(n-1) count+=1 return count