本文转载自:https://blog.csdn.net/s_h_m114_2/article/details/53734484
上大学《数字逻辑》这门课学过奇偶校验,工作后没用过,忘了具体是什么原理了,现在要写一个上位机,需要学习一下,查了一下,奇偶校验我的理解是这样的:
1、奇偶校验是用来检查数据传输的正确性的方法。奇偶校验能检测出传输数据的部分错误(1位误码能检测出,2位及2位以上检测不出来),而且不能纠错,在发现错误后,只能要求重发。由于简单所以被广泛应用。
2、这种方法是在每一字节中加上一个奇偶校验位,并被传输,即每个字节发送九位(8位+1位校验位)数据。1个字节(byte)=8位(bit)。
3、数据传输以前通常会确定是奇校验还是偶校验,以保证发送端和接收端采用相同的校验方法进行数据校验。
假如校验位不符,则认为传输出错。
4、奇校验:一个字节8位中“1”的个数,校验位,添加一位,使9位中“1”的个数为奇数;偶校验同理。
奇校验:就是让原有数据序列中(包括你要加上的一位)1的个数为奇数
1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。
偶校验:就是让原有数据序列中(包括你要加上的一位)1的个数为偶数
1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了。
5、校验的原理是:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,“1”的个数一定为奇数个,在 接收端对接收字符二进制位中的“1”的个数进行统计,若统计出“1”的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。
事实上,在传输中偶尔—位出错的机会最多,故奇偶校验法常常采用。
</div>