# 476 Number Complement

The complement of an integer is the integer you get when you flip all the `0`'s to `1`'s and all the `1`'s to `0`'s in its binary representation.

• For example, The integer `5` is `"101"` in binary and its complement is `"010"` which is the integer `2`.

Given an integer `num`, return its complement.

Example 1:

``````Input: num = 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits),
and its complement is 010. So you need to output 2.
``````

Example 2:

``````Input: num = 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits),
and its complement is 0. So you need to output 0.
``````

Constraints:

• `1 <= num < 231`
 ``````1 2 3 4 5 6 7 8 9 `````` ``````class Solution: def findComplement(self, num: int) -> int: todo, bit = num, 1 while todo: num = num ^ bit bit <<= 1 todo >>= 1 return num }``````
 `````` 1 2 3 4 5 6 7 8 9 10 `````` ``````func findComplement(num int) int { result := 0 power := 1 for num > 0 { result += (num % 2 ^ 1) * power power <<= 1 num >>= 1 } return result }``````