📜  查找整数的补码

📅  最后修改于: 2021-05-25 10:10:09             🧑  作者: Mango

给定整数n,找到整数的补码。
例子:

Input  : n = 5
Output : 2

Input  : n = 255
Output : 0

Input  : n = 26
Output : 5

解决此问题的有效方法如下:
1.查找给定整数中的位数
2.将给定的整数与2 ^ number_of_bits-1进行异或

C++
// CPP program to find 1's complement of n.
#include
using namespace std;
 
unsigned int onesComplement(unsigned int n)
{
   // Find number of bits in the given integer
   int number_of_bits = floor(log2(n))+1;
 
   // XOR the given integer with poe(2,
   // number_of_bits-1 and print the result
   return ((1 << number_of_bits) - 1) ^ n;
}
 
int main()
{
  unsigned int n = 22;
  cout << onesComplement(n);
  return 0;
}


Java
// Java program to find 1's complement of n.
class GFG {
     
    static int onesComplement(int n)
    {
         
        // Find number of bits in the
        // given integer
        int number_of_bits =
               (int)(Math.floor(Math.log(n) /
                             Math.log(2))) + 1;
 
        // XOR the given integer with poe(2,
        // number_of_bits-1 and print the result
        return ((1 << number_of_bits) - 1) ^ n;
    }
     
    // Driver code
    public static void main(String[] args)
    {
        int n = 22;
         
        System.out.print(onesComplement(n));
    }
}
 
// This code is contributed by Anant Agarwal.


Python3
# Python3 program to find
# 1's complement of n.
import math
 
def onesComplement(n):
 
    # Find number of bits in
    # the given integer
    number_of_bits = (int)(math.floor(math.log(n) /
                                math.log(2))) + 1;
 
    # XOR the given integer with poe(2,
    # number_of_bits-1 and print the result
    return ((1 << number_of_bits) - 1) ^ n;
 
# Driver code
n = 22
print(onesComplement(n))
 
# This code is contributed by Anant Agarwal.


C#
// C# program to find 1's complement of n.
using System;
 
class GFG {
     
    static int onesComplement(int n)
    {
         
       // Find number of bits in the given integer
       int number_of_bits = (int)(Math.Floor(
                   Math.Log(n) / Math.Log(2))) + 1;
      
       // XOR the given integer with poe(2,
       // number_of_bits-1 and print the result
       return ((1 << number_of_bits) - 1) ^ n;
    }
     
    //Driver code
    public static void Main ()
    {
         
        int n = 22;
         
        Console.WriteLine(onesComplement(n));
    }
}
 
// This code is contributed by Anant Agarwal.


PHP


Javascript


输出 :

9

https://youtu.be/bcA