# Find a value whose XOR with given number is maximum

Given a value X, the task is to find the number Y which will give maximum value possible when XOR with X.

(Assume X to be 8 bits) Maximum possible value of X and Y both is 255.

**Examples:**

Input:X = 2Output:253 Binary Representation of X = 00000010 Binary Representation of Y = 11111101 Maximum XOR value: 11111111Input:X = 200Output:55

**Approach:** In order to ensure maximum value of XOR, we need to set all those bits ON which are OFF in X. So for that, Y should have all bits ON which are OFF in X and OFF which are ON in X as (0^1 = 1 and 1^0 = 1). So Y should be the 1’s complement representation of X.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the above approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function To Calculate Answer ` `int` `calculate(` `int` `X) ` `{ ` ` ` `// Find number of bits in the given integer ` ` ` `int` `number_of_bits = 8; ` ` ` ` ` `// XOR the given integer with poe(2, ` ` ` `// number_of_bits-1 and print the result ` ` ` `return` `((1 << number_of_bits) - 1) ^ X; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `X = 4; ` ` ` ` ` `cout << ` `"Required Number is : "` ` ` `<< calculate(X) << endl; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the above approach ` ` ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` `// Function To Calculate Answer ` `static` `int` `calculate(` `int` `X) ` `{ ` ` ` `// Find number of bits in the given integer ` ` ` `int` `number_of_bits = ` `8` `; ` ` ` ` ` `// XOR the given integer with poe(2, ` ` ` `// number_of_bits-1 and print the result ` ` ` `return` `((` `1` `<< number_of_bits) - ` `1` `) ^ X; ` `} ` ` ` `// Driver Code ` ` ` ` ` ` ` `public` `static` `void` `main (String[] args) { ` ` ` `int` `X = ` `4` `; ` ` ` ` ` `System.out.println( ` `"Required Number is : "` ` ` `+calculate(X)); ` ` ` `} ` `} ` `// This code is contributed by shs.. ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the above approach ` ` ` `# Function To Calculate Answer ` `def` `calculate(X): ` ` ` ` ` `# Find number of bits in the given integer ` ` ` `number_of_bits ` `=` `8` ` ` ` ` `# XOR the given integer with poe(2, ` ` ` `# number_of_bits-1 and print the result ` ` ` `return` `((` `1` `<< number_of_bits) ` `-` `1` `) ^ X ` ` ` `# Driver Code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `X ` `=` `4` ` ` `print` `(` `"Required Number is:"` `, calculate(X)) ` ` ` `# This code is contributed by Rituraj Jain ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the above approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function To Calculate Answer ` `static` `int` `calculate(` `int` `X) ` `{ ` ` ` `// Find number of bits in ` ` ` `// the given integer ` ` ` `int` `number_of_bits = 8; ` ` ` ` ` `// XOR the given integer with poe(2, ` ` ` `// number_of_bits-1 and print the result ` ` ` `return` `((1 << number_of_bits) - 1) ^ X; ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main () ` `{ ` ` ` `int` `X = 4; ` ` ` ` ` `Console.WriteLine(` `"Required Number is : "` `+ ` ` ` `calculate(X)); ` `} ` `} ` ` ` `// This code is contributed by shs.. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP implementation of the ` `// above approach ` ` ` `// Function To Calculate Answer ` `function` `calculate(` `$X` `) ` `{ ` ` ` `// Find number of bits in ` ` ` `// the given integer ` ` ` `$number_of_bits` `= 8; ` ` ` ` ` `// XOR the given integer with ` ` ` `// poe(2, number_of_bits-1 and ` ` ` `// print the result ` ` ` `return` `((1 << ` `$number_of_bits` `) - 1) ^ ` `$X` `; ` `} ` ` ` `// Driver Code ` `$X` `= 4; ` ` ` `echo` `"Required Number is : "` `. ` ` ` `calculate(` `$X` `) . ` `"\n"` `; ` ` ` `// This code is contributed ` `// by Akanksha Rai ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

Required Number is : 251

## Recommended Posts:

- Find the maximum subset XOR of a given set
- Find the node whose xor with x gives maximum value
- Find Maximum XOR value of a sub-array of size k
- Find triplets in an array whose AND is maximum
- Find the maximum subarray XOR in a given array
- Find maximum XOR of given integer in a stream of integers
- Find the root of the sub-tree whose weighted sum XOR with X is maximum
- Find element with the maximum set bits in an array
- Remove one bit from a binary number to get maximum value
- Number whose sum of XOR with given array range is maximum
- Find a number which give minimum sum when XOR with every number of array of integers
- Queries to find the maximum Xor value between X and the nodes of a given level of a perfect binary tree
- Smallest number whose set bits are maximum in a given range
- Maximum sum by adding numbers with same number of set bits
- Minimum number of elements to be removed to make XOR maximum

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.