🐳
南软佛脚玩乐指南
Github
  • 欢迎
  • 南软
    • 课程&培养方案介绍
  • 佛脚
    • 微积分 I/II
    • CPL
    • 计算系统基础
    • 软件工程与计算 I
    • 离散数学
    • 需求与商业模式创新
      • 商业模式部分笔记
      • 需求部分笔记
      • 往年卷
    • 线性代数
    • 互联网计算
      • 01-计算机网络及其参考模型
      • 02-物理层
      • 03-数据链路层
      • 04-网络层
      • 05-传输层
      • 06-应用层
      • 07-路由
      • 08-路由协议
      • 09-VLAN
      • 10-广域网 & PPP
      • 11-网络安全 & ACL
      • 12-DHCP
      • 20-复习
      • 21-常见报文汇总
      • 22-往年卷要点汇总
      • 名词解释
      • 大作业要求
      • 实验考试要求
      • 小测及答案
    • 计算机组织结构
      • 01-概述
      • 02-计算机的顶层视图
      • 03-数据表示
      • 04-校验码
      • 05-整数运算
      • 06-浮点运算
      • 07-BCD运算
      • 08-内部存储器
      • 09-Cache
      • 10-外部存储器
      • 11-RAID
      • 12-虚拟存储器
      • 13-指令系统
      • 14-指令流水线
      • 15-控制器
      • 16-总线
      • 17-输入输出
      • 20-复习
      • 机考
        • 2024-12
        • 2020-12
    • 数据结构与算法
    • 密码学原理
    • 计算机系统基础实验选修
  • 玩乐
    • 吃喝
      • 鼓楼周边
      • 仙林周边
      • 南京市内
    • 旅游
      • 春日赏花
      • 宁杭线
  • 交通
  • 指南
    • 获取下载密码
    • 添砖加瓦
由 GitBook 提供支持
在本页
  • 校验码
  • 纠错
  • 奇偶校验码
  • 海明码
  • 校验码长度
  • 数据位划分
  • 错误情形
  • 循环冗余校验 CRC
在GitHub上编辑
  1. 佛脚
  2. 计算机组织结构

04-校验码

上一页03-数据表示下一页05-整数运算

最后更新于3个月前

校验码

  • 数据在运算传输的过程中不可避免会出错

  • 发现错误更难:矫正错误肯定需要额外信息

纠错

  • 基本思想:储存额外的数据(校验码C)对数据D进行校正

  • 处理过程

    • 使用f在D上生成C

    • 传输,对面获得D‘ C’

    • 对面使用D'生成C‘’和C‘进行比较

    • 没差错则使用数据,否则校正/报告

D C 都有出错的可能性

一旦进入传输的过程,源数据D/C都不存在了

奇偶校验码

  • 基本原理:数1的个数

  • 奇校验:多⊕\oplus⊕一个1

  • 若C′′⊕C′C^{''}\oplus C^{'}C′′⊕C′

    • =0:正确/偶数位出错

    • =1:奇数位出错

  • 优点:代价低

  • 缺点:坏掉两个就不行了、无法校正

  • 适合对较短长度的数据进行检错

海明码

  • 基本思想:分组进行奇偶校验,确保能够通过校验码出错的位数定位到唯一的出错位置

  • 缺陷:额外成本大、要将数据分成字节

校验码长度

  • 假设数据长度为MMM 校验码长度为KKK 最多有1位发生错误

  • 那么所有情况是 M+K+1M+K+1M+K+1

  • 为了覆盖所有情况,2K≥M+K+12^K \ge M+ K +12K≥M+K+1

数据位划分

  • 二进制下只有1个1的位置留给校验码

  • 校验码异或所有对应位置为1的数据

错误情形

  • 若C′′⊕C′C^{''}\oplus C^{'}C′′⊕C′

    • 全为0:没有错误

    • 仅1位1:校验码出错(因为数据位不会只有1个1)

    • 多位1:数据出错,对应数据取反即可

循环冗余校验 CRC

  • 适合用流格式传输存储的数据

  • 步骤

    1. 提前约定好生成多项式

    2. 假设数据有MMM位,左移数据KKK位(右侧补0),并用K+1K+1K+1位生成多项式除它(除法需要模2运算,比如说0−1=10-1=10−1=1)

    3. 采用KKK位余数作为校验码,把校验码放在数据(不含补的0)后面,一同存储或传输

  • 如果M+KM+KM+K位内容可以被生成多项式除尽,则没有检测到错误

纠错的处理过程
海明码