编程笔试(解析及代码实现):求二进制中1的个数,输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
目录
编程题目
求二进制中1的个数,输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
实现代码
# -*- coding:utf-8 -*-
'''
首先加1,然后执行下边操作一次,就对原数某位进行一次【1→0】的变换,
直至n为0就跳出循环
'''
class Solution:
def NumberOf1(self, n):
# write code here
count = 0
if n < 0:
n = n & 0xffffffff #负数用补码表示
while n:
n = (n - 1) & n #位运算符——与,相同为0不同为1
count += 1