题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
注意事项:
首先需要判断n是不是负数,当n为负数的时候,直接用while循环判断会导致死循环,因为负数向左移位的话最高位补1 。
一个int为8位,所以负数的情况中需要判断32个字节中1的个数。
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
res = 0
for i in range(32):
if n>>i & 1 == 1:
res += 1
return res
本文介绍了一种计算整数二进制表示中1的个数的方法,特别关注了负数补码表示下如何准确计算。通过遍历32位整数的每一位,判断其是否为1,并累加得到最终结果。
&spm=1001.2101.3001.5002&articleId=89297277&d=1&t=3&u=61b9f4a5068a464baae8034b7a2870c5)
690

被折叠的 条评论
为什么被折叠?



