【问题标题】:parity bit and error detection [closed]奇偶校验位和错误检测
【发布时间】:2012-01-01 19:06:43
【问题描述】:

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

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

【问题讨论】:

  • 你查过维基百科吗?
  • 是的,我无法理解。
  • “偶数和奇数两种”是什么意思?
  • @Mat 发送方和接收方之间是否确认 PF=1/0?还是接收方应该自己找到PF?

标签: c architecture assembly character-encoding


【解决方案1】:

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

Data: 01001001  3 ones, parity bit 1
Data: 00110101  4 ones, parity bit 0

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

当然,如果同一字节中有两个错误,则无法检测到这一点 - 例如,如果原始是 00000001 而接收的是 00000010 - 但这种情况很少见,大多数人不必担心应用程序。

【讨论】:

    【解决方案2】:

    Wikipedia article的第一句很清楚,第二段也很清楚……但是哦。

    给定一个 n 位的字,其中 n-1 位用于检查奇偶校验和 1 位奇偶校验,奇偶校验位将设置为:

    • 如果设置为 1 的位数是奇数,则为 1,否则为 0(偶校验);
    • 如果设置为 1 的位数是偶数,则为 0,否则为 1(奇校验)。

    示例:1101011x 其中x 是奇偶校验位。有 5 位设置为 1,因此奇数:x 将设置为 1(偶校验)或 0(奇校验)。

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 2013-03-18
      • 2016-01-31
      • 2017-11-06
      • 2019-03-08
      相关资源
      最近更新 更多