Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Complement of Base 10 Integer

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a base 10 integer N, the task is to find the 1’s complement of this Base 10 Integer.

Examples:

Input: N = 5
Output: 2
Explanation: Binary representation of 5 is “101”. Its one’s complement is “010” = 2.

Input: N = 255
Output: 0

 

Approach: Here the number is converted by flipping bits and adding that power of 2 to the answer. Follow the steps mentioned below to implement it:

  • Find the binary representation of N.
  • For each bit, flip it and add the contribution of this bit to the final answer.
  • Return the final answer

Below is the implementation of the above approach.

C++




// C++ code to implement above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the complement
int findComplement(int num)
{
    int ans = 0;
    for (int i = 0; num > 0; i++) {
        ans += pow(2, i) * (!(num % 2));
        num /= 2;
    }
    return ans;
}
 
// Driver code
int main()
{
    unsigned int N = 5;
    cout << findComplement(N);
    return 0;
}


Java




// Java code to implement above approach
class GFG {
 
  // Function to find the complement
  static int findComplement(int num)
  {
    int ans = 0, x;
    for (int i = 0; num > 0; i++) {
      if (num % 2 == 1) {
        x = 0;
      }
      else {
        x = 1;
      }
      ans += (int)Math.pow(2, i) * x;
      num /= 2;
    }
    return ans;
  }
 
  // Driver code
  public static void main(String[] args)
  {
    int N = 5;
    System.out.print(findComplement((int)N));
  }
}
 
// This code is contributed by ukasp.


Python




# Python code to implement above approach
 
# Function to find the complement
def findComplement(num):
    ans = 0;
    x = 0;
    i = 0;
    while(num > 0):
        if (num % 2 == 1):
            x = 0;
        else:
            x = 1;
 
        ans += pow(2, i) * x;
        num //= 2;
        i += 1;
 
    return ans;
 
# Driver code
if __name__ == '__main__':
    N = 5;
    print(findComplement(N));
 
# This code is contributed by 29AjayKumar


C#




// C# code to implement above approach
using System;
class GFG
{
 
  // Function to find the complement
  static int findComplement(int num)
  {
    int ans = 0, x;
    for (int i = 0; num > 0; i++) {
      if(num % 2 == 1) {
        x = 0;
      }
      else {
        x = 1;
      }
      ans += (int)Math.Pow(2, i) * x;
      num /= 2;
    }
    return ans;
  }
 
  // Driver code
  public static void Main()
  {
    uint N = 5;
    Console.Write(findComplement((int)N));
 
  }
}
 
// This code is contributed by Samim Hossain Mondal.


Javascript




<script>
       // JavaScript code for the above approach
 
       // Function to find the complement
       function findComplement(num) {
           let ans = 0;
           for (let i = 0; num > 0; i++) {
               ans += Math.pow(2, i) * (!(num % 2));
               num = Math.floor(num / 2);
           }
           return ans;
       }
 
       // Driver code
 
       let N = 5;
       document.write(findComplement(N));
 
 // This code is contributed by Potta Lokesh
   </script>


 
 

Output

2

 

Time Complexity: O(logN)
Auxiliary Space: O(1)

 


My Personal Notes arrow_drop_up
Last Updated : 17 Jan, 2022
Like Article
Save Article
Similar Reads
Related Tutorials