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

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
class Solution:
    def NumberOf1(self, n):
        # write code here
        count=0
        if n < 0:
            n = n & 0x7fffffff
            count+=1
        while not n==0:
            count+=n&1
            n=n>>1
        return count

思路:先对复数进行处理,转化为正数。之后右移进行累加操作。

posted @ 2019-02-21 16:46  Cool小子  阅读(105)  评论(0编辑  收藏  举报