题解 | #二进制中1的个数#
二进制中1的个数
http://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def NumberOf1(self , n: int) -> int:
if n >= 0:
return self.number1(n)
else:
return 32-self.number1(-n-1)
def number1(self,n):
count = 0
while n!= 0:
if n%2 == 1:
count += 1
n = n // 2
return count
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def NumberOf1(self , n: int) -> int:
flag = 1
count = 0
num = 32
#判断n的32位的每一位是不是1
while num > 0:
if flag & n :
count +=1
flag = flag << 1
num -= 1
return count
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def NumberOf1(self , n: int) -> int:
count = 0
#对负数转换成32位二进制,否则将不是32位的表示
if n<0:
n=n&0xffffffff
while n:
count += 1
n = (n-1) & n
return count