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

校验码:CRC循环冗余校验(模2除法)

适合读者软考中级备考同学阅读时间4分钟内容CRC原理、模2除法步骤、生成多项式、例题1. 为什么需要CRC奇偶校验只能检测奇数个错误且无法定位错误位置。CRC循环冗余校验Cyclic Redundancy Check通过复杂的数学运算能够检测多位错误检错能力远强于奇偶校验广泛应用于网络通信如以太网、存储设备如硬盘等领域。软考中常考查CRC的编码过程核心是模2除法。2. 核心概念2.1 基本步骤发送方选定一个生成多项式G(x)发送方和接收方事先约定在原数据后面添加若干个00的个数 生成多项式位数 - 1用模2除法将添加0后的数据除以生成多项式得到的余数作为CRC校验码替换掉添加的0发送原始数据 CRC校验码2.2 接收方校验步骤用收到的完整数据数据CRC除以同一个生成多项式如果余数为0说明数据正确或未检测出错误如果余数不为0说明数据传输过程中发生了错误3. 模2除法关键技能模2除法与普通除法不同不借位、不进位按位做异或运算每一位独立计算1-100-001-010-11其实就是异或规则取被除数的前n位n生成多项式的位数如果最高位为1则商1并用被除数与生成多项式做异或减如果最高位为0则商0并直接落下一位重复直到所有位处理完毕最后的余数位数 生成多项式位数4. 生成多项式的表示生成多项式G(x)可以用二进制串表示例如G(x) x^4 x 1 → 二进制 10011从最高次到常数项系数为1的位对应1G(x) x^3 x^2 1 → 二进制 1101注意生成多项式的位数 最高次幂 1。例如x^4对应的二进制有5位。5. 完整示例软考典型题目原始数据为101101生成多项式为10011即x^4 x 1求CRC校验码。步骤1确定添加0的个数生成多项式10011共5位所以添加5-14个0数据变为101101 0000步骤2模2除法用1011010000除以100111011010000 ÷ 10011我们逐步计算取被除数前5位10110最高位1 → 商1与10011异或10110 ⊕ 10011 00101即101落下一位0 →10104位不够5位继续落位等一下我们按照长除法习惯上一步余数是101即0101再落下一变成01010更规范的写法10011 ) 1011010000 10011 ← 第一次商1减异或 ---- 011011 ← 余数011再落下一0等等实际上应该是 1011010000 10011 (对齐前5位) ---- 0110110000? 我一步步来还是列竖式更清楚10011 ) 1011010000 10011 ---- 0100110000 (余数 01001? 不)为了避免混乱我改用手工逐位推导被除数1 0 1 1 0 1 0 0 0 0除数 1 0 0 1 1第一次取前5位 1 0 1 1 0最高位1商1异或得 0 0 1 0 1即101余数101然后落下一第六位1 → 1011不对我们还有后面的0。实际上我们逐位移动初始取5位 1011010110 XOR 10011 00101即101现在余数101落下一原第6位1 → 10114位需要5位所以再落一位原第7位0 → 1011010110 XOR 10011 00101 → 余数101落下一原第8位0 → 10104位再落一位原第9位0 → 1010010100 XOR 10011 00111 → 余数111落下一原第10位0 → 11104位此时没有更多位了。余数1110共4位小于除数位数5。所以余数为 1110。因此CRC校验码 1110。最终发送数据原始数据 CRC 101101 11106. 接收方校验示例接收方收到1011011110用同一个生成多项式10011做模2除法若余数为0则正确。计算过程略与发送方类似最终余数应为0。7. 生成多项式的常见标准软考中可能直接给出生成多项式的二进制形式不必记忆标准但了解常用多项式有助于理解名称生成多项式二进制用途CRC-8100000111嵌入式CRC-1611000000000000101异步通信CRC-32100000100110000010001110110110111以太网、ZIP考试一般会直接给出多项式无需记忆。8. 常见考点与陷阱考点说明添加0的个数 生成多项式位数 - 1模2除法与普通除法的区别减法是异或不借位余数的位数小于生成多项式位数检错能力CRC能检测全部单比特错误、双比特错误、奇数个错误、突发长度≤r-1的错误r为校验位位数生成多项式选择国际标准不可随意选择9. 经典例题软考常见题目1原始数据为1101生成多项式为1011求CRC校验码。解生成多项式位数4添加3个0 →1101000模2除法1011 ) 1101000 1011 ---- 0110 (余数110落下一0得1100) 1011 ---- 0111 (余数111落下一0得1110) 1011 ---- 0101 (余数101)余数1013位小于4位。校验码 101发送数据1101 101答案101题目2接收方收到数据1101101生成多项式为1011数据是否正确解用1101101除以1011看余数是否为0。计算过程略最终余数若为0则正确。本题结果为余数0可自行验证。答案正确题目3判断题CRC校验码既能检错也能纠错。答案错误。CRC通常只能检错不能定位和纠正错误除非结合重传机制。10. 记忆口诀CRC有多项式除后余数做校验。模2除不借位异或运算要熟练。接收方再相除余数为0则安全。11. 给备考同学的一句话CRC的难点在模2除法。多动手算几遍熟悉对齐、异或、落位的流程。考试时如果计算量大可以先列出二进制竖式逐位处理。记住添加0的个数 多项式位数 - 1余数位数 多项式位数。本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅需要“计算机系统知识”完整思维导图私信回复“软考计算机”免费获取#软考中级 #软件设计师 #CRC #循环冗余校验 #计算机系统知识
http://www.gsyq.cn/news/1415027.html

相关文章:

  • 从欧姆定律到艺术灯光:LED电路设计与可编程灯光装置实战指南
  • Word怎么转txt?2026转换方法+快捷键保姆级教程 - AI测评专家
  • 阿里 AgenUI 开源库前后端实战教程 —— Day 2:后端接入 Spring AI Alibaba 鸿蒙端引入 AgenUI
  • 3步解密网易云音乐NCM格式:重获音乐自由的开源方案
  • 如何用kybox视觉创意工坊准确编辑图片
  • Arduino无线通信实战:基于NRF24L01与摇杆的遥控系统搭建指南
  • 如何增加网站被收录的机会?企业单页网站快速被抓取的4个偏门技巧
  • 基于SLG59H1008V的12V/24V自动电压切换系统设计与实现
  • Drawio桌面版安全架构深度解析:构建离线优先的图表绘制堡垒
  • 从ARIMA到TimesFM:预测模型选型与部署的8条工程经验
  • 2026年成都本地靠谱软装硬装服务商推荐:成都八马空间建筑装饰,专注定制设计与精工施工 - 海棠依旧大
  • 《流畅的Python》读书笔记14(补充02): 从协议到抽象基类 - 高并发下单策略优化方案
  • Reset Windows Update Tool:让Windows更新系统重获新生的专业修复方案
  • 猫抓Cat-Catch:2024年浏览器媒体资源嗅探终极指南
  • 浏览器媒体资源一键捕获:猫抓扩展如何让视频下载变得如此简单?
  • 如何评估IP查询工具的性能?4个核心指标+Python压测脚本
  • 2026育婴师培训应用白皮书家庭技能提升推荐:浙江母婴培训机构排名榜/浙江母婴培训机构排名榜前十名/排行一览 - 优质品牌商家
  • Lainux:为AI构建者打造的安全操作系统,解决环境配置与安全加固难题
  • 基于小程序的校园管理系统的设计与实现毕设
  • 树莓派智能认知训练立方体:从硬件搭建到Web数据可视化的全栈物联网实践
  • 如何用Mi-Create为小米手表打造个性化表盘?5个技巧让设计更专业
  • 网站SEO优化要注意什么?AI写文章不被惩罚的2个细节
  • PaperPrue 可能是指 PaperPure(或 PaperPro),这是一款专注于降低论文中人工智能生成内容(AIGC)检测率并提供查重服务的工具,适用于学术写作场景。 用户可通过其-收费的资本
  • AI数据安全:从隐私保护到对抗防御的全景防线
  • MCP 协议通信方式深度解析:从 WebSocket 到 Streamable HTTP,小白程序员必备收藏指南!
  • 降AI率天花板!AI率92%暴降至5%!实测10款降AI率软件!免费额度狂薅攻略
  • DICOM文件里到底藏了啥?手把手教你解读CT影像的‘身份证’信息
  • 音乐格式限制终结者:5步掌握Unlock-Music解锁加密音频文件
  • 基于Arduino的非接触式自动消毒干手一体机设计与实现
  • Windows内核级硬件指纹伪装:深入解析EASY-HWID-SPOOFER的实现原理与实战应用