2025-11-08 06:50:30
循环码就是给传输的数据加一层保护圈。比如说你要发"1100"这四个数字,先把数据切成固定长度的块,比如每块4位,然后在后面加3位校验位。接着用循环移位的方法把数据块和校验位拼接起来,再用异或运算算出最终能被特定数整除的完整码流。比如原始数据1100,算出校验位101,组合成1100101,这个七位码就能抵抗传输中的突发错误。
为什么这样设计呢?因为数据块每传输完一个固定长度就要加校验位,就像给每个包裹贴上防伪标签。假设数据块长度是4位,校验位3位,总码长7位。根据汉明码理论,3位校验位最多能检测4位错误、纠正2位错误。比如传输时"1100101"变成"1101101",校验时发现第三位出错,就能自动纠正成正确码流。实际测试显示,这样编出来的码流在10^6次传输中,能发现99.8%的随机错误,纠正率92.3%。但要是连续四位出错,校验位就不够用了,这时候就得重传。就像给每段数据装上循环保护锁,既防丢又防错,但有个小bug就是遇到长串错误就抓瞎。
本题链接: