海明码介绍
📅 2026/6/25 14:12:40
👁️ 次浏览
海明码Hamming Code是一种在计算机存储和数据通信中广泛使用的错误检测与纠正编码。它由贝尔实验室的理查德·卫斯里·汉明Richard W. Hamming于1950年发明。它的核心思想是通过在原始数据中插入多个校验位冗余位不仅能够检测数据是否出错还能精确定位并纠正单个比特的错误。这是对传统奇偶校验码仅能检测奇数个错误无法纠错的重大改进。核心原理海明码的检错与纠错能力源于其将数据位与校验位进行多重分组奇偶校验。具体来说编码后的数据中每一个数据位都会被一个或多个特定的校验位所覆盖。当某一位数据出错时会连锁导致多个校验位的校验结果发生改变。接收方通过分析这些校验结果形成一个称为“故障字”的数值就能唯一确定出错的位置随后将该位取反0变11变0即可完成纠正。关键特性检错与纠错能力海明码能够检测出双比特错误并能纠正单比特错误。简单高效相比于更复杂的纠错码海明码的编码和解码逻辑相对简单硬件实现成本低因此在很多场景下被广泛采用。工作流程海明码的编解码过程遵循明确的步骤1、确定校验位数量根据要发送的数据位数k计算需要添加的校验位位数r。它们必须满足海明不等式2ʳ - 1 ≥ k r。2、确定校验位位置校验位被放置在码字中 2 的幂次方的位置上即第1、2、4、8、16……位。其余位置按顺序填入原始数据位。3、计算校验位值每个校验位负责对一组特定位置的数据位进行偶校验或奇校验。这些分组规则由位置的二进制表示决定。后续详细举例讲解4、检错与纠错接收端收到数据后重新计算所有校验组。如果某个校验组的结果与收到的校验位不符则说明该组内发生了错误。将所有不匹配的校验组编号组合起来就得到了出错位置的二进制编码直接指出是哪一位错了将其取反即可纠正。(7,4)海明码介绍(7,4)海明码是海明码最经典的实现用4位原始数据生成3位校验位组成一个7位的码字。它的最小码距为3因此具备纠正所有单个比特错误的能力。第一步编码从4位数据到7位码字确定校验位的位置在7位码字中校验位被放置在2的幂次方的位置上即第1、2、4位。数据位则依次填入剩下的位置。7位码字位号7654321位类型 D4 D3 D2 P3 D1 P2 P1 本例数值101?0? ?初始码字结构为 1 0 1 P3 0 P2 P1其中 P1, P2, P3 是待计算的校验位。分组并计算校验位每个校验位负责对特定位置的数据位进行偶校验即保证该组内所有位的“1”的个数为偶数。分组规则由位号的二进制表示决定。下表清晰地展示了这种对应关系校验位 负责的位号 (二进制位为1) 负责的位号 (十进制) 包含的数据位P1 (位1) 1, 3, 5, 7 1, 3, 5, 7 D1 (位3), D2 (位5), D4 (位7)P2 (位2) 2, 3, 6, 7 2, 3, 6, 7 D1 (位3), D3 (位6), D4 (位7)P3 (位4) 4, 5, 6, 7 4, 5, 6, 7 D2 (位5), D3 (位6), D4 (位7)从b站截图一张方便理解校验位负责的位号。根据我们的数据 D10, D21, D30, D41对应位号3,5,6,7的值分别为0,1,0,1来计算校验位P1负责位3, 5, 7。这些位的值为 0, 1, 1。异或结果0 ⊕ 1 ⊕ 1 0P1 0。P2负责位3, 6, 7。这些位的值为 0, 0, 1。异或结果0 ⊕ 0 ⊕ 1 1P2 1。P3负责位5, 6, 7。这些位的值为 1, 0, 1。异或结果1 ⊕ 0 ⊕ 1 0P3 0。生成最终码字将计算出的校验位 P30, P21, P10 填入码字我们得到最终的7位码字1 0 1 0 0 1 0。第二步译码与纠错发现并修复错误假设码字在传输过程中第5位D2发生了错误从 1 变成了 0接收端收到的错误码字为 1 0 0 0 0 1 0。重新计算校验计算校正子当重新计算的校验和全为0时传输数据正确。接收端用同样的分组规则对收到的7位码字重新计算三个校验位的值称为校验和。校验和1 (S1)负责位1, 3, 5, 7。这些位的值为 0, 0, 0, 1。异或结果0 ⊕ 0 ⊕ 0 ⊕ 1 1。校验和2 (S2)负责位2, 3, 6, 7。这些位的值为 1, 0, 0, 1。异或结果1 ⊕ 0 ⊕ 0 ⊕ 1 0。校验和3 (S3)负责位4, 5, 6, 7。这些位的值为 0, 0, 0, 1。异或结果0 ⊕ 0 ⊕ 0 ⊕ 1 1。定位错误将三个校验和按 (S3, S2, S1) 的顺序组成一个二进制数 101。这个数 101 的十进制值就是 5它精准地指出了发生错误的位号是第 5 位。纠正错误找到错误位后纠错就很简单了直接将第5位取反0 变为 1。码字被成功恢复为正确的 1010010原始数据 1010 也得以还原。主要应用计算机内存RAM带有错误纠正码ECC 的内存条广泛使用海明码或其扩展版本以检测和纠正内存中的随机比特错误保障系统稳定性。数据存储系统在硬盘、固态硬盘SSD等存储设备中用于保护存储数据的完整性。数字通信在诸如以太网等信道环境相对较好的网络中用于确保数据传输的准确性。
一、依赖缺失与类路径错误
1. NoClassDefFoundError: com/ctc/wstx/io/InputBootstrapper
现象
Exception in thread "main" java.lang.NoClassDefFoundError: com/ctc/wstx/io/InputBootstrapper
Caused by: java.lang.ClassNotFoundException: com.ctc.wstx.io.…
📅 2026/6/25 14:12:40
1. 项目概述:这不是又一本“AI工具使用手册”,而是一份从用户思维切换到建造者思维的实操路线图“From ChatGPT User to AI Builder”这个标题里藏着一个被绝大多数人忽略的关键转折——User(用户)和Builder(建造者&am…
📅 2026/6/25 14:12:40
Sherlock.js:让自然语言变身日程助手,3分钟解锁智能事件解析 【免费下载链接】Sherlock Natural-language event parser for Javascript 项目地址: https://gitcode.com/gh_mirrors/sherlock4/Sherlock 核心关键词:自然语言解析、JavaS…
📅 2026/6/25 14:12:40
摘要:2026年,SAP启用全新的SAP Business One合作伙伴框架,用Premier Partner取代沿用多年的Silver/Gold等级。近日,MTC麦汇获评SAP Business One Premier Partner(卓越合作伙伴)。本文从体系换轨的机制讲起…
📅 2026/6/25 15:32:49
Buzz终极指南:如何用免费离线语音转录工具提升10倍工作效率 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz
还在为…
📅 2026/6/25 15:32:49
戴森V6/V7吸尘器电池管理系统开源固件升级:解锁隐藏功能,告别32次红灯闪烁 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-B…
📅 2026/6/25 15:32:49
在学术写作面临全新挑战的今天,AI工具正从辅助角色演变为重要的生产力引擎。针对免费、好用且能提供真实引用支持的核心需求,经过对市面上主流工具的深入测试与分析,我们发现表现突出的工具有:千笔AI、ChatGPT、Claude、文心一言、…
📅 2026/6/25 15:32:49
1. 项目概述:这不是“接入”,而是系统级能力重构“Apple Public Betas Bring ChatGPT To Siri”这个标题,表面看是一条科技新闻快讯,但作为在iOS/macOS生态里摸爬滚打十一年、参与过7代Siri架构演进测试的从业者,我必须…
📅 2026/6/25 15:32:49
3步搞定黑苹果配置:OpCore Simplify让复杂技术变得简单有趣 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify
想要在普通PC上体验macOS系统吗…
📅 2026/6/25 15:27:48
MONKEYCODE 教程系列 MonkeyCode教程及推广系列
MC-037 自定义 Skill 开发:创建你的AI能力模块
>官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e
系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列
字数: 约 1400 字…
📅 2026/6/25 11:52:02
过度设计的代价:从 Maven 版本幻觉到工程上的简单原则
前段时间,我在梳理内部组件库的版本管理方式。
一开始,我想解决的问题很直接:组件越来越多,每个模块又有自己的版本号,能不能把这些版本统一管理起来…
📅 2026/6/25 11:52:02
1. 项目概述与I2C总线核心价值 如果你正在用LPC2101这类老牌ARM7芯片做项目,大概率绕不开I2C总线。传感器、EEPROM、RTC时钟芯片,这些外设十有八九都靠这两根线(SDA和SCL)跟你对话。手册里那些密密麻麻的状态码和流程图࿰…
📅 2026/6/25 11:57:03
1. 从手册到实战:SLIDER与SPINBOX控件的深度解析在嵌入式GUI开发里摸爬滚打十几年,我见过太多项目因为界面交互的“小问题”而卡壳。参数调节不跟手、数值输入效率低下,这些看似不起眼的细节,往往是决定产品用户体验成败的关键。e…
📅 2026/6/24 6:06:01
暗黑2重获新生:D2DX如何让经典游戏在现代Windows系统上流畅运行 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx
…
📅 2026/6/24 12:13:33
CompressO终极指南:免费开源的视频图像压缩神器 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO
你…
📅 2026/6/25 7:05:00