剑指offer:11 二进制中1的个数

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

Python

class Solution:

    def NumberOf1(self, n):

        # write code here

        return bin(n).count('1') if n >= 0 else bin(2 **32 + n).count('1')

Python - 仅考虑正数

class Solution:

        cnt = 0

        while n > 0:

            if n % 2 != 0:

                cnt += 1

            n = n // 2

        return cnt

你可能感兴趣的:(剑指offer:11 二进制中1的个数)