参考自《C和指针》一书,C语言入门推荐
代码如下:
/*
* 偶校验C语言代码
* 输入参数:
* value: 待校验数值
* n_bits: 带校验位个数
* 返回值:
* 字节中偶数个1,返回1
* 字节中奇数个1,返回0
*/
unsigned char even_parity( int value, unsigned char n_bits)
{
unsigned char parity = 0;
/*
** 计算数值中值为1的位的个数
*/
while( n_bits >0)
{
parity += value & 1;
value >>=1;
n_bits -=1;
}
/*
** 如果计数器最低位为0,返回1(表示1的位数有偶数个)
*/
return (parity % 2) == 0;
}