奇偶校验位和错误检测

S.A*_*hid -1 c architecture assembly character-encoding

我在大学的计算机体系结构课程中遇到过这种情况。我无法理解奇偶校验位;为什么它有偶数和奇数两种。

谁能给我清楚地解释一下奇偶校验码?

Dan*_*Dan 5

“奇偶校验位”是一种错误检查方法。想象一下,您需要通过连接发送 8 位数据并确定它们是否正确通过。您可以尝试发送两次,这样如果有错误,接收者就会知道,因为两条消息不同。但是,这需要两倍的带宽,太多了。所以通常每个字节(8 位)也会有一个奇偶校验位。您计算字节中的 1 的数量。如果是奇数,则奇偶校验位为 1。如果是偶数,则奇偶校验位为零。这样,如果有任何单个错误,接收器就会知道,并且只需要八分之一的额外带宽。例子:

Data: 01001001  3 ones, parity bit 1
Data: 00110101  4 ones, parity bit 0
Run Code Online (Sandbox Code Playgroud)

如果接收器得到00111101和奇偶校验位0,它就会知道有一些损坏。

当然,如果在同一个字节中有两个错误,则将无法检测到这一点 - 例如,如果原始是00000001和接收的是00000010- 但是这被认为是罕见的,对于大多数应用程序来说不必担心。