[牛客网,剑指offer,python] 二进制中1的个数

来源:互联网 发布:python 引号嵌 编辑:程序博客网 时间:2024/05/29 15:16

二进制中1的个数

题目描述

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

解题思路

将该二进制数的每一位与1做与运算,统计结果为1的个数。
具体做法是:对二进制数进行右移操作,每次右移一位,然后和1进行与运算。由于1的二进制表示为”… 0000 0001”,所以将右移后的二进制数和1做与运算实际是判断右移后的二进制数的最后一位是否为1。

代码

# -*- coding:utf-8 -*-class Solution:    def NumberOf1(self, n):        # write code here        # 二进制数存储在计算机中的是补码,32是计算机的位数        return sum([(n>>i)&1 for i in range(32)])
原创粉丝点击