Given an integer N. The task is to write a program to find the parity of the given number.
Note: Parity of a number is used to define if the total number of set-bits(1-bit in binary representation) in a number is even or odd. If the total number of set-bits in the binary representation of a number is even then the number is said to have even parity, otherwise, it will have odd parity.
Input : N = 13 Output : Odd Parity Binary representation of 13 is (1101) Input : N = 9 (1001) Output : Even Parity
The parity of a number represented by 32-bits can be efficiently calculated by performing the following operations.
Let the given number be x, then perform the below operations:
- y = x^(x>>1)
- y = y^(y>>2)
- y = y^(y>>4)
- y = y^(y>>8)
- y = y^(y>>16)
Now, the rightmost bit in y will represent the parity of x. If the rightmost bit is 1, then x will have odd parity and if it is 0 then x will have even parity.
So, in order to extract the last bit of y, perform bit-wise AND operation of y with 1.
if(y&1==1) odd Parity else even Parity
Below is the implementation of the above approach:
Even Parity Odd Parity
- Compute the parity of a number using XOR and table look-up
- Program to invert bits of a number Efficiently
- Program to find parity
- Sum of elements from an array having even parity
- Count the nodes in the given tree whose weight is even parity
- Efficiently check whether n is a multiple of 4 or not
- Check if matrix A can be converted to B by changing parity of corner elements of any submatrix
- Writing C/C++ code efficiently in Competitive programming
- Efficiently check if a string has all unique characters without using any additional data structure
- Efficiently find first repeated character in a string without using any additional data structure in one traversal
- std::gcd | C++ inbuilt function for finding GCD
- Finding Floor and Ceil of a Sorted Array using C++ STL
- Finding inverse of a matrix using Gauss - Jordan Method | Set 2
- Count number of trailing zeros in Binary representation of a number using Bitset
- Maximize a given unsigned number number by swapping bits at it's extreme positions.
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.