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
}