## DEV Community 👩‍💻👨‍💻 is a community of 921,001 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Number of 1 Bits

## Approach

There are several ways to solve this problem. Let's look at a few.

#### Using count()

We convert the decimal number to binary, replace "0b" with no value and count the number of 1's

### Implementation

``````def hammingWeight(self, n: int) -> int:
bits =  bin(n).replace("0b", "")
return bits.count('1')

``````

## Using the bit_count() method

The method returns the number of ones in the binary representation of the absolute value of the integer.

``````def hammingWeight(self, n: int) -> int:
return n.bit_count()
``````

You can review this resource for a better understanding of the method.

### Bit Manipulation

We can loop through the number and count the number of 1's
Using the modulus operator(%) we can get the number of 1's and shift n to the right until all 32bits are zeros.

• n%2 will return 0 or 1 so the count only changes when it is a 1.

#### Implementation

``````def hammingWeight(self, n: int) -> int:
count = 0
while n:
count += n%2
n = n >> 1
return count
``````

This algorithm has a constant time complexity O(1) because we iterate through 32 bits.
The space complexity is O(1) because we do not need extra memory.

I hope you found this helpful. Let me know of other solution approaches.

## Top comments (0)

### 🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.