首先要想到的是,将十进制全部转换成二进制后,开始统计1的个数,解法1为:将该二进制数转化为字符串,然后对该字符串进行遍历,如果等于1,计数器+1;

但是注意此处转换二进制时,正数可以直用bin(),oct(),int(). hex()
  • 如果是正整数,直接转换成二进制即可;
  • 如果是负整数,需求出该数对应的补码,以便后期解题; 用一个n = n & 0xffffffff 的与操作实现
# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1(self, n):
        # write code here
        if n < 0:
            n = n & 0xffffffff#按位与运算求一个负数的补码
        j = 0
        res = bin(n)[2:]#去除前两位"ob"
        for i in res:
            if i == "1":
                j += 1
        return j