面试题15:二进制中1的个数

# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1(self, n):
        # write code here
        # 通过bin()可以直接将正数转为01二进制,而负数经过bin()转换得到的是带有“-”符号的字符串
        # 针对负数,我们那他和32位1做与运算
        if n < 0:
            n = n&0xFFFFFFFF
        count = 0
        for i in str(bin(n)):
            if i == "1":
                count += 1
        return count

 

posted @ 2019-08-12 09:09  lililili——  阅读(180)  评论(0)    收藏  举报