Question
Formatted question description: https://leetcode.ca/all/191.html
191 Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has
(also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011,
so the function should return 3.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
@tag-bit
Algorithm
Sum up &1
result.
Code
Java
public class Number_of_1_Bits {
public static void main(String[] args) {
Number_of_1_Bits out = new Number_of_1_Bits();
Solution s = out.new Solution();
System.out.println(s.hammingWeight(11));
}
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int count = 0;
while (n > 0) {
count += n & 1;
n >>= 1;
}
return count;
}
}
public class Solution_cheat {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
return Integer.bitCount(n); // Returns the number of one-bits in the two's complement binary representation
}
}
public class Solution_toBinaryString {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
String binaryString = Integer.toBinaryString(n);
int count = 0;
for (int i = 0; i < binaryString.length(); i++) {
if (binaryString.charAt(i) == '1') {
count++;
}
}
return count;
}
}
}