Write a C program to find the parity of an unsigned integer

来源:互联网 发布:淘宝买家信誉等级表 编辑:程序博客网 时间:2024/05/16 11:13

reference: 

http://www.geeksforgeeks.org/write-a-c-program-to-find-the-parity-of-an-unsigned-integer/


Problem Definition:

Parity: Parity of a number refers to whether it contains an odd or even number of 1-bits. The number has “odd parity”, if it contains odd number of 1-bits and is “even parity” if it contains even number of 1-bits.


Solution:

1. Initialize parity = 02. Loop while n != 0            a. Invert parity              parity = !parity      b. Unset rightmost set bit             n = n & (n-1)3. return parity


Code:

/* Function to get parity of number n. It returns 1   if n has odd parity, and returns 0 if n has even   parity */bool getParity(unsigned int n){    bool parity = 0;    while (n)    {        parity = !parity;        n      = n & (n - 1);    }            return parity;}


原创粉丝点击