《剑指Offer》刷题之二进制中1的个数
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 - 示例:
示例 1 :
输入:10
返回值:2
- 代码1:
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
if n >= 0:
temp = bin(n)
return temp.count('1')
if n < 0:
return(bin(2**32 + n).count("1"))
- 算法说明:
如果是正数,转换为二进制,计算里面字符'1'
的个数;
如果是负数,2的32次方加上n,转换为二进制,计算里面字符'1'
的个数。