奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之是偶校验。奇偶校验只能检测错误而无法修正错误,并且没有办法检测双位错误。
单向校验
概论
单向奇偶校验(Row Parity)由于一次只采用单个校验位,因此又称为单个位奇偶校验(Single Bit Parity)。发送器在数据帧每个字符的信号后添加一个奇偶校验位,接收器对该奇偶校验位进行检查。典型的例子是面向ASCII码的数据信号帧的传输,由于ASCII码是七位码,因此是用第八位作为奇偶校验位。
校验方法 | 发送器通过校验位 |
---|---|
奇校验 | 保证每个字符的8个位中1的总数为奇数 |
偶校验 | 保证每个字符的8个位中1个总数为偶数 |
缺陷
当被传输的字符7个信号位中同时有奇数个位出现错误,均可被检测出来;但是如果有偶数个位出现错误,单向奇偶校验是没有办法检测出来的。
检验方法
奇校验:就是让原有数据序列中(包括要加上的一位)1的个数为奇数。
1000110(0),必须添加一个0才能保证字符中1的总数为奇数。
偶校验:就是让原有数据序列中(包括要加上的一位)1的个数为偶数。
1000110(1),必须添加一个1才能保证字符中1的总数为奇数。
双向校验
为了提高奇偶校验的检错能力,可采用双向奇偶校验(Row and Column Parity),可称为双向冗余校验(Vertical and Longitudinal Redundancy Checks),又称为“方块校验”或“垂直校验”。
例如:
x表示奇偶校验所采用的奇校验或偶校验的校验码。
如此一来,对于每一个数的关注就由以前的17次增加到了77次。因此,比单项校验的校验能力更强。
参考:
1.百度百科-奇偶校验
网友评论