package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
func NumberOf1( n int ) int {
// write code here
cnt := 0
// 第一位默认为 1
// 将 n 转换为 2 进制
if n < 0 {
n &= 0x7fffffff
cnt++
}
// 从低位逐个与 1 相与,相与为 1,说明最低位为 1,统计结果
// 继续右移
for n != 0 {
cnt += n & 1
n >>= 1
}
return cnt
}

京公网安备 11010502036488号