软考高级架构师:校验码概念和例题

本文详细介绍了计算机网络中的三种常见校验码技术:奇偶校验、CRC(循环冗余检验)和海明校验。这些方法在确保数据完整性和准确性方面发挥关键作用,尤其在高错误率环境下的应用和区别被逐一阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。

热门文章推荐

一、AI 讲解

在计算机网络和数据通信领域,为了确保数据的完整性和准确性,通常会采用各种校验码技术。其中,奇偶校验、循环冗余检验(CRC)和海明校验是三种常见的校验方法。它们各自有不同的特点和应用场景。

校验码技术基本原理特点应用场景
奇偶校验通过添加一个额外的比特来使得整个数据单元中1的数量为奇数(奇校验)或偶数(偶校验)实现简单,但错误检测能力有限适用于错误率较低的简单通信系统
循环冗余检验(CRC)根据数据序列生成固定长度的校验值,使用特定的多项式来进行计算错误检测能力强,能检测到多位错误广泛应用于网络通信、数据存储等领域
海明校验通过添加多个校验位,并按位计算校验位的值,不仅能检测错误还能定位单个错误位能够定位和纠正单个错误,但增加了额外的数据量适用于错误检测和纠正要求较高的场景

奇偶校验

奇偶校验是最简单的错误检测方法之一,它通过在数据末尾添加一个额外的比特(奇偶校验位)来确保整个数据单元(包括校验位)中1的数量为奇数或偶数。这种方法的优点是实现简单,但其错误检测能力有限,只能检测出奇数个错误,无法检测偶数个错误。
在这里插入图片描述

循环冗余检验(CRC)

CRC是一种基于多项式除法的错误检测编码,其核心在于选取一个“生成多项式”并利用它来计算出数据序列的CRC校验值。这个校验值在发送数据时附加到数据末尾。接收方对接收到的数据(包含CRC校验值)使用相同的多项式进行计算,如果计算结果为零,则认为数据没有错误。CRC能够检测出较为复杂的错误模式,如多位错误、突发错误等。
在这里插入图片描述
在这里插入图片描述

海明校验

海明校验是一种更高级的错误检测和纠正方法,它通过添加多个校验位到数据中,并根据数据位和校验位的关系设计校验算法,以实现错误的检测和定位。最常见的海明码能够定位和纠正单个错误位,以及检测双错误位。

二、AI 出题

(1)题目

  1. 奇偶校验能够检测出的错误是?

    • A. 奇数个错误
    • B. 偶数个错误
    • C. 所有错误
    • D. 无法检测错误
  2. CRC校验的关键因素是什么?

    • A. 校验位数量
    • B. 生成多项式
    • C. 数据长度
    • D. 错误率
  3. 在使用海明校验时,增加的校验位主要用于?

    • A. 增加数据传输速率
    • B. 减少数据传输量
    • C. 错误的检测和定位
    • D. 增强数据加密
  4. 哪种校验码技术可以实现错误的自动纠正?

    • A. 奇偶校验
    • B. CRC
    • C. 海明校验
    • D. 所有上述技术
  5. CRC校验中使用的“生成多项式”的位数决定了什么?

    • A. 校验值的长度
    • B. 数据的长度
    • C. 可检测的最大错误位数
    • D. 传输速率
  6. 在奇偶校验中,如果一个数据单元包含偶数个1,要实现偶校验,校验位应该是?

    • A. 0
    • B. 1
    • C. 可以是0也可以是1
    • D. 与数据单元无关
  7. 海明校验能够纠正的错误类型包括?

    • A. 单个错误
    • B. 双错误
    • C. 突发错误
    • D. 所有上述错误
  8. 使用CRC校验时,如果接收方计算得到的CRC值为0,这意味着什么?

    • A. 数据一定没有错误
    • B. 数据一定有错误
    • C. 需要重新传输数据
    • D. 数据可能有偶数个错误
  9. 对于同一份数据,使用不同的校验码技术,下列说法正确的是?

    • A. 海明校验的校验位数最少
    • B. CRC校验的错误检测能力最弱
    • C. 奇偶校验的实现成本最低
    • D. CRC校验的数据传输速率最高
  10. 如果需要在一个高错误率的数据通信环境下保证数据的准确性,最适合采用的校验码技术是?

    • A. 奇偶校验

    • B. CRC

    • C. 海明校验

    • D. 需要结合多种技术使用

(2)答案和解析

  1. A. 奇数个错误。奇偶校验只能检测出奇数个错误。
  2. B. 生成多项式。CRC的核心是使用特定的生成多项式来计算校验值。
  3. C. 错误的检测和定位。海明校验通过增加的校验位实现错误的检测和定位。
  4. C. 海明校验。海明校验可以实现错误的自动纠正,特别是单个错误。
  5. A. 校验值的长度。生成多项式的位数直接影响CRC校验值的长度。
  6. A. 0。为了使整个数据单元中1的数量为偶数,如果数据单元已有偶数个1,则校验位应为0。
  7. A. 单个错误。海明校验主要用于定位和纠正单个错误。
  8. A. 数据一定没有错误。CRC校验如果计算结果为0,表示数据在传输过程中未发生错误。
  9. C. 奇偶校验的实现成本最低。奇偶校验技术简单,实现成本低。
  10. B. CRC。在高错误率环境下,CRC因其较强的错误检测能力而更为适合。

三、真题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明如月学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值