https://zhuanlan.zhihu.com/p/26509678 引自原文
1.定义
奇偶校验位(英语:Parity bit)或校验比特(check bit)是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。
如果传输过程中包括校验位在内的奇数个数据位发生改变,那么奇偶校验位将出错表示传输过程有错误发生。因此,奇偶校验位是一种错误检测码,但是由于没有办法确定哪一位出错,所以它不能进行错误校正。发生错误时必须扔掉全部的数据,然后从头开始传输数据。在噪声很多的介质上成功传输数据可能要花费很长的时间,甚至根本无法实现。但是奇偶校验位也有它的优点,它是使用一位数据能够达到的最好的校验码,并且它仅仅需要一些异或门就能够生成。参见汉明码中关于其它错误校正码的描述。
2.纠错原理
跟CRC类似,也是在原始码流后面,加上校验位。不同的是,它的校验位只有一位,要么是0,要么是1。并且它的校验码还可以放在码流的前面。
3.应用举例
由于它很简单,所以奇偶校验位用于许多计算机硬件中,遇到麻烦时能够重新操作或者通过简单的错误检测就能起到很大作用的场合。例如SCSI总线使用奇偶校验位检测传输错误,许多微处理器的指令高速缓存中也包括奇偶校验位保护。因为指令缓存数据是主内存数据的副本,所以在发现错误的时候能够抛弃错误数据并且重新取回数据。
在串行通信中,常用的格式是7个数据位、1个校验位、1到2个停止位。这种格式用方便的8位字节巧妙地适应了所有的7位ASCII字符。也可以用其它的格式表示,8位数据加上1个校验位可以传输任意的8位字节数据。
在串行通信中,奇偶校验位通常是由UART这样的接口硬件生成、校验的,在接收方,通过接口硬件中的寄存器的状态位传给CPU以及操作系统。错误数据的恢复通常是通过重新发送数据,这个过程通常由如操作系统输入输出程序这样的软件处理的。
奇偶校验码一个最为常见的应用场合就是ASCII码。
ASCII码占用一个字节,低7位是有效位,最高位用作奇偶校验。
4. 错误检测能力
只能检测出奇数个错误。
例如还是ASCII码 大写字母 A