当前位置: 首页 > news >正文

【备考记录】三种校验码

计算机系统运行时,各个部件之间要进行数据交换换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性;二是提高代码的校验能力,包括查错和纠错。
常用的三种校验码:奇偶校验码(Parity Codes)、海明码(HammingCode)和循环冗余校验(Cyclic RedundancyCheck,CRC)码。

奇偶校验码

  • 基本原理:奇偶校验码是一种简单的错误检测码,通过在数据后面增加一个校验位,使得整个数据中1的个数为奇数或偶数。
  • 奇校验码:整个校验码中1的个数为奇数。
  • 偶校验码:整个校验码中1的个数为偶数。
  • 特点:只能检测出奇数位的错误,无法检测出偶数位的错误,且无法确定错误的具体位置

海明码

  • 基本原理:海明码是一种可以纠正一位差错的编码,通过在数据中插入多个校验位,并将每个数据位分配到多个奇偶校验组中,从而实现错误的检测和纠正。
  • 编码规则
    • 根据信息位数 n n n,确定校验位数 k k k,满足关系式 2 k − 1 ≥ k + n 2^k -1 \geq k + n 2k1k+n
    • 将校验位放置在海明码的2的幂次位置上,其余位置放置信息位。
    • 每个校验位负责不同的数据位组合的奇偶校验。
  • 特点:可以检测双比特错误,并纠正单比特错误。

循环冗余校验码(CRC)

  • 基本原理:循环冗余校验码是一种基于多项式除法的检错码,将数据视为一个多项式,用该多项式去除以一个预先确定的生成多项式,得到的余数作为校验码
  • 编码规则
    • 将要传送的信息 M ( X ) M(X) M(X) 表示为一个多项式
    • M ( X ) M(X) M(X) 乘以 x r x^r xr r r r为校验位数),得到一个多项式。
    • 将该多项式除以生成多项式 G ( X ) G(X) G(X),得到余式 R ( X ) R(X) R(X)
    • 将余式 R ( X ) R(X) R(X)作为校验码附加在原信息后面,形成最终的传输数据。
  • 特点:具有较强的检错能力,能够检测出所有奇数位错双比特错以及小于等于校验位长度的突发错

总结

  • 奇偶校验码:简单易实现,但检错能力有限,只能检测出奇数位错误。
  • 海明码:不仅能检错,还能纠正单比特错误,但编码复杂度较高。
  • 循环冗余校验码:检错能力强,适用于数据传输等领域,但需要进行多项式运算。

相关文章:

  • pop是什么的缩写?为什么Python用它表示删除元素?
  • 【统计学相关笔记】2. 多元正态的Cochran定理
  • iptables练习笔记20250315
  • 盖革管死区时间导致脉冲丢失分析
  • 3.9/Q2,Charls最新文章解读!
  • 苹果电脑杀毒软件CleanMyMac
  • Android 手机启动过程
  • [C++Qt] 槽函数收不到信号问题(信号的注册)
  • 当大模型训练遇上“双向飙车”:DeepSeek开源周 DualPipe解析指南
  • 数字化转型 - 数据驱动
  • 【干货】Docker 在自动化测试和性能测试中的应用
  • 3.15刷题
  • 剑指 Offer II 083. 没有重复元素集合的全排列
  • 支持本地部署人力资源系统:6款工具评测精选
  • golang time包和日期函数
  • ​​​​​​​大语言模型安全风险分析及相关解决方案
  • 蓝桥杯嵌入式赛道复习笔记1(led点亮)
  • Python实现限流算法
  • 使用-v选项查看编译器详细搜索路径(g++示例)g++ -v -c main.cpp 发现自定义路径没有被包含怎么办
  • 如何用Deepseek制作流程图?
  • 香港今年新股集资额已超600亿港元,暂居全球首位
  • 上海将建设万兆小区、园区及工厂,为模型训练数据的传输提供硬件支持
  • 中国旅马大熊猫“福娃”和“凤仪”启程回国
  • 经济日报金观平:促进信贷资金畅达小微企业
  • 圆桌丨全球化博弈与人工智能背景下,企业如何落地合规体系
  • 联合国:欢迎俄乌伊斯坦布尔会谈,希望实现全面停火