# Bitwise Operations on Digits of a Number

Given a number N, the task is to perform the bitwise operations on digits of the given number N. The bitwise operations include:

• Finding the XOR of all digits of the given number N
• Finding the OR of all digits of the given number N
• Finding the AND of all digits of the given number N

Examples:

```Input: N = 486
Output:
XOR = 10
OR = 14
AND = 0

Input: N = 123456
Output:
XOR = 10
OR = 14
AND = 0
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

1. Get the number
2. Find the digits of the number and store it in an array for computation purpose.
3. Now perform the various bitwise operations (XOR, OR, and AND) on this array one by one.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` ` `  `#include ` `using` `namespace` `std; ` ` `  `int` `digit; ` ` `  `// Function to find the digits ` `int` `findDigits(``int` `n) ` `{ ` `    ``int` `count = 0; ` ` `  `    ``while` `(n != 0) { ` ` `  `        ``digit[count] = n % 10; ` `        ``n = n / 10; ` `        ``++count; ` `    ``} ` ` `  `    ``return` `count; ` `} ` ` `  `// Function to Find OR ` `// of all digits of a number ` `int` `OR_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = 0; ` ` `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `        ``// Find OR of all digits ` `        ``ans = ans | digit[i]; ` `    ``} ` ` `  `    ``// return OR of digits ` `    ``return` `ans; ` `} ` ` `  `// Function to Find AND ` `// of all digits of a number ` `int` `AND_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = 0; ` ` `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `        ``// Find AND of all digits ` `        ``ans = ans & digit[i]; ` `    ``} ` ` `  `    ``// return AND of digits ` `    ``return` `ans; ` `} ` ` `  `// Function to Find XOR ` `// of all digits of a number ` `int` `XOR_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = 0; ` ` `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `        ``// Find XOR of all digits ` `        ``ans = ans ^ digit[i]; ` `    ``} ` ` `  `    ``// return XOR of digits ` `    ``return` `ans; ` `} ` ` `  `// Driver code ` `void` `bitwise_operation(``int` `N) ` `{ ` ` `  `    ``// Find and store all digits ` `    ``int` `countOfDigit = findDigits(N); ` ` `  `    ``// Find XOR of digits ` `    ``cout << ``"XOR = "` `         ``<< XOR_of_Digits(N, countOfDigit) ` `         ``<< endl; ` ` `  `    ``// Find OR of digits ` `    ``cout << ``"OR = "` `         ``<< OR_of_Digits(N, countOfDigit) ` `         ``<< endl; ` ` `  `    ``// Find AND of digits ` `    ``cout << ``"AND = "` `         ``<< AND_of_Digits(N, countOfDigit) ` `         ``<< endl; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` ` `  `    ``int` `N = 123456; ` ` `  `    ``bitwise_operation(N); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach ` `import` `java.util.*; ` ` `  `class` `GFG{ ` ` `  `static` `int` `[]digit = ``new` `int``[``100000``]; ` ` `  `// Function to find the digits ` `static` `int` `findDigits(``int` `n) ` `{ ` `    ``int` `count = ``0``; ` ` `  `    ``while` `(n != ``0``) { ` ` `  `        ``digit[count] = n % ``10``; ` `        ``n = n / ``10``; ` `        ``++count; ` `    ``} ` ` `  `    ``return` `count; ` `} ` ` `  `// Function to Find OR ` `// of all digits of a number ` `static` `int` `OR_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = ``0``; ` ` `  `    ``for` `(``int` `i = ``0``; i < count; i++) { ` `         `  `        ``// Find OR of all digits ` `        ``ans = ans | digit[i]; ` `    ``} ` ` `  `    ``// return OR of digits ` `    ``return` `ans; ` `} ` ` `  `// Function to Find AND ` `// of all digits of a number ` `static` `int` `AND_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = ``0``; ` ` `  `    ``for` `(``int` `i = ``0``; i < count; i++) { ` `         `  `        ``// Find AND of all digits ` `        ``ans = ans & digit[i]; ` `    ``} ` ` `  `    ``// return AND of digits ` `    ``return` `ans; ` `} ` ` `  `// Function to Find XOR ` `// of all digits of a number ` `static` `int` `XOR_of_Digits(``int` `n, ``int` `count) ` `{ ` ` `  `    ``int` `ans = ``0``; ` ` `  `    ``for` `(``int` `i = ``0``; i < count; i++) { ` `         `  `        ``// Find XOR of all digits ` `        ``ans = ans ^ digit[i]; ` `    ``} ` ` `  `    ``// return XOR of digits ` `    ``return` `ans; ` `} ` ` `  `// Driver code ` `static` `void` `bitwise_operation(``int` `N) ` `{ ` ` `  `    ``// Find and store all digits ` `    ``int` `countOfDigit = findDigits(N); ` ` `  `    ``// Find XOR of digits ` `    ``System.out.print(``"XOR = "` `        ``+ XOR_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` ` `  `    ``// Find OR of digits ` `    ``System.out.print(``"OR = "` `        ``+ OR_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` ` `  `    ``// Find AND of digits ` `    ``System.out.print(``"AND = "` `        ``+ AND_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` `  `    ``int` `N = ``123456``; ` ` `  `    ``bitwise_operation(N); ` `} ` `} ` ` `  `// This code is contributed by sapnasingh4991 `

## Python 3

 `# Python 3 implementation of the approach ` `digit ``=` `[``0``]``*``(``100000``) ` ` `  `# Function to find the digits ` `def` `findDigits(n): ` `    ``count ``=` `0` ` `  `    ``while` `(n !``=` `0``): ` ` `  `        ``digit[count] ``=` `n ``%` `10``; ` `        ``n ``=` `n ``/``/` `10``; ` `        ``count ``+``=` `1` ` `  `    ``return` `count ` ` `  `# Function to Find OR ` `# of all digits of a number ` `def` `OR_of_Digits( n,count): ` `    ``ans ``=` `0` ` `  `    ``for` `i ``in` `range``(count): ` `         `  `        ``# Find OR of all digits ` `        ``ans ``=` `ans | digit[i] ` ` `  `    ``# return OR of digits ` `    ``return` `ans ` ` `  `# Function to Find AND ` `# of all digits of a number ` `def` `AND_of_Digits(n, count): ` ` `  `    ``ans ``=` `0` ` `  `    ``for` `i ``in` `range``(count): ` `         `  `        ``# Find AND of all digits ` `        ``ans ``=` `ans & digit[i] ` ` `  `    ``# return AND of digits ` `    ``return` `ans ` ` `  `# Function to Find XOR ` `# of all digits of a number ` `def` `XOR_of_Digits(n, count): ` ` `  `    ``ans ``=` `0` ` `  `    ``for` `i ``in` `range``(count): ` `         `  `        ``# Find XOR of all digits ` `        ``ans ``=` `ans ^ digit[i] ` ` `  `    ``# return XOR of digits ` `    ``return` `ans ` ` `  `# Driver code ` `def` `bitwise_operation( N): ` ` `  `    ``# Find and store all digits ` `    ``countOfDigit ``=` `findDigits(N) ` ` `  `    ``# Find XOR of digits ` `    ``print``(``"XOR = "``,XOR_of_Digits(N, countOfDigit)) ` ` `  `    ``# Find OR of digits ` `    ``print``(``"OR = "``,OR_of_Digits(N, countOfDigit)) ` ` `  `    ``# Find AND of digits ` `    ``print``(``"AND = "``,AND_of_Digits(N, countOfDigit)) ` ` `  `# Driver code ` `N ``=` `123456``; ` `bitwise_operation(N) ` ` `  `# This code is contributed by apurva raj `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG{ ` `  `  `static` `int` `[]digit = ``new` `int``; ` `  `  `// Function to find the digits ` `static` `int` `findDigits(``int` `n) ` `{ ` `    ``int` `count = 0; ` `  `  `    ``while` `(n != 0) { ` `  `  `        ``digit[count] = n % 10; ` `        ``n = n / 10; ` `        ``++count; ` `    ``} ` `  `  `    ``return` `count; ` `} ` `  `  `// Function to Find OR ` `// of all digits of a number ` `static` `int` `OR_of_Digits(``int` `n, ``int` `count) ` `{ ` `  `  `    ``int` `ans = 0; ` `  `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `          `  `        ``// Find OR of all digits ` `        ``ans = ans | digit[i]; ` `    ``} ` `  `  `    ``// return OR of digits ` `    ``return` `ans; ` `} ` `  `  `// Function to Find AND ` `// of all digits of a number ` `static` `int` `AND_of_Digits(``int` `n, ``int` `count) ` `{ ` `  `  `    ``int` `ans = 0; ` `  `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `          `  `        ``// Find AND of all digits ` `        ``ans = ans & digit[i]; ` `    ``} ` `  `  `    ``// return AND of digits ` `    ``return` `ans; ` `} ` `  `  `// Function to Find XOR ` `// of all digits of a number ` `static` `int` `XOR_of_Digits(``int` `n, ``int` `count) ` `{ ` `  `  `    ``int` `ans = 0; ` `  `  `    ``for` `(``int` `i = 0; i < count; i++) { ` `          `  `        ``// Find XOR of all digits ` `        ``ans = ans ^ digit[i]; ` `    ``} ` `  `  `    ``// return XOR of digits ` `    ``return` `ans; ` `} ` `  `  `// Driver code ` `static` `void` `bitwise_operation(``int` `N) ` `{ ` `  `  `    ``// Find and store all digits ` `    ``int` `countOfDigit = findDigits(N); ` `  `  `    ``// Find XOR of digits ` `    ``Console.Write(``"XOR = "` `        ``+ XOR_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` `  `  `    ``// Find OR of digits ` `    ``Console.Write(``"OR = "` `        ``+ OR_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` `  `  `    ``// Find AND of digits ` `    ``Console.Write(``"AND = "` `        ``+ AND_of_Digits(N, countOfDigit) ` `        ``+``"\n"``); ` `} ` `  `  `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` `  `  `    ``int` `N = 123456; ` `  `  `    ``bitwise_operation(N); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

Output:

```XOR = 7
OR = 7
AND = 0
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.