统计二进制数字中位数为"1"的个数 ------------------------------------ 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 :: 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000000000000000000001011 示例 2:: 输入: 128 输出: 1 解释: 整数 128 的二进制表示为 00000000000000000000000010000000 代码如下:: import unittest class Solution(object): def hammingWeight(self, n): """ :type n: int :rtype: int """ count = 0 while(n!=0): if(n%2==1): count += 1 n = n//2 return count class TesthammingWeightFunc(unittest.TestCase): """Test case""" def test_hammingWeight(self): """Test method hammingWeight()""" s =Solution() self.assertEqual(3, s.hammingWeight(11)) self.assertEqual(1, s.hammingWeight(128)) self.assertEqual(1, s.hammingWeight(1)) if __name__ == '__main__': unittest.main()