编程语言
首页 > 编程语言> > 剑指offer二进制中1的个数python

剑指offer二进制中1的个数python

作者:互联网

题目描述

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

思路

一个数-1后和本身异或可以消掉最右边的1

代码

# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1(self, n):
        #  抹掉最右边的一个1
        count = 0
        if n < 0:
            n = n & 0xFFFFFFFF
        while n:
            n = (n - 1) & n
            count += 1
        return count

 

标签:count,右边,offer,python,个数,二进制,异或,消掉
来源: https://www.cnblogs.com/wangzhihang/p/11790616.html