Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Example 1:
Example 2:
Note:
- The given integer is guaranteed to fit within the range of a 32-bit signed integer.
- You could assume no leading zero bit in the integer’s binary representation.
- This question is the same as 1009: https://leetcode.com/problems/complement-of-base-10-integer/
Solution
Here we can use complement operator
For Example:
Code
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class NumberComplement { public int findComplement(int num) { int mask = (Integer.highestOneBit(num) << 1) - 1; //Set all ones to mask for result. num = ~num; // Complement the number return num & mask; // and mask number and inverted number. } public static void main(String[] args) { NumberComplement nmObj=new NumberComplement(); System.out.println(nmObj.findComplement(5)); } } |
Output
We encourage you to write a comment if you have a better solution or having any doubt on the above topic.