奇偶校验

版权声明:本文为博主原创,未经博主允许不得转载 https://blog.csdn.net/Sherry_Yue/article/details/87926373

奇偶校验(Parity Check)是一种校验代码传输正确性的方法。
根据被传输的一组二进制代码的数位中**“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验**,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

对值进行偶校验:

int even_parity(int value,int n_bits)
{
	int parity = 0;
	while( n_bits>0 )//计数值中值为1的位的个数
	{
		parity += value & 1;
		value >>= 1;
		n_bits -= 1;
	}
	return (parity%2)==0;//如果计数器的最低位是0,返回TRUE(表示1的位数为偶数个)
}

对值进行奇校验:

int odd_parity(int value,int n_bits)
{
	int parity = 0;
	while( n_bits>0 )//计数值中值为1的位的个数
	{
		parity += value & 1;
		value >>= 1;
		n_bits -= 1;
	}
	return (parity%2)==1;//如果计数器的最低位是1,返回TRUE(表示1的位数为奇数个)
}

猜你喜欢

转载自blog.csdn.net/Sherry_Yue/article/details/87926373