题目
计算在一个 32 位的整数的二进制表示中有多少个1
样例
给定 32 (10 0000),返回 1
给定 5(101),返回 2
给定 1023(11 1111 1111),返回 10
分析
这道题需要用到 移位运算符 和 与运算
例如5(101) 分别和 0...001,0...010,0...100, 0..1000,1...0进行与运算(&),如果不为0,说明5的二进制在这一位为1。0...001,0...010,0...100,0..1000,1...0可以通过对1移位(<<)来计算。
代码(Java)
1 | public int countOnes(int num) { |