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
Understand the problem:00000000000000000000000000001011
, so the function should return 3.The questions is quite easy to address. Each time we get the least significant bit and check if it is 1. Then shift the number to the right by 1 until 32 times.
Code (Java):
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int result = 0; for (int i = 0; i < 32; i++) { result += n & 1; n = n >> 1; } return result; } }
No comments:
Post a Comment