题:请编写一个函数,让它把一个指定整数的二进制表示形式中的“1”的个数统计出来。
这题在JAVA下有几个解法:
1。设计一个把十进制转换为二进制的算法,再对其统计。
2。用Integer.toBinaryString方法,先把十进制转换为二进制,再对其统计。
3。因为整数在计算机中的表示形式就是二进制,所以我们无需对其转换,运用位操作符可直接操作它的二进制数。我们把1作为掩码,与要统计的整数进行&运算,就可判断整数的最低位是否为1了,然后对整数进行右移>>>1位(注意:是>>>,不是>>,因为如果整数是负数,前者在移位后会全补上零,这是JAVA特有的符号,而后者会根据符号位进行补全)。









