剑指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