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

【计组】校验码(奇偶校验码、海明校验码、CRC)

前言 

1、小提示:本篇博文是参考王道,在复习 ASCII 码的基础上,总结校验码的相关学习知识点,并在最后搭配习题(含408真题)进行巩固练习。(对重点内容进行划线、标色)

2、适用人群:408考研、备考高中信息技术教师资格证、学习《计算机组成原理》的人员

3、可搭配学习的链接:

【考研】计组:中断_计组中断过程

【考研】计组习题:存储器

一、字符编码 ASCII 码与校验码

1、ASCII 码的概念

7 位的二进制编码(字符系统),每个字节的最高位保持为0,可用于传输时的奇偶校验位,可表示 10 个十进制数码、52 个英文大写和小写字母(A - Z, a - z),及一定数量的专用符号(如 %、+、=、$ 等),共 128 个字符。

2、编码值与其对应的ASCII 码表示

编码值0-313232-126127
ASCII 码控制字符空格SP可印刷字符(95个字符)DEL码
注意:0 - 9 的 ASCII 码值为 48 (011 0000) - 57(011 1001),即去掉高 3 位,只保留低 4 位,正好是二进制形式的 0 - 9。

3、校验码(又称检错纠错编码)

1、定义

指能够发现或能够自动纠正错误的数据编码。

2、原理

通过增加一些冗余码,来检验和纠错编码。

3、码距

任意两个合法码字之间最少变化的二进制位数,称为数据检验码的码距。

对于码距不小于 2 的数据检验码,开始具有检错能力。

码距越大,检错纠错能力就越强,而且检错能力总是大于等于纠错能力。

如:

(1)1100 和 1101 之间的码距为1(因为只有最低位翻转了) 

(2)1100 和 1011 之间的码距为3(因为低 3 位翻转了)

二、奇偶校验码

1、定义与实现方法

(1)定义

在原编码上加一个校验位,它的码距等于 2,可检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误,增加的冗余位称为奇偶校验位

奇偶校验码的格式

奇偶校验位

有效信息位

1位

 n 位

 (2)实现方法

由若干位有效信息(如 1 B)再加上一个二进制位(校验位)组成校验码,如上图。校验位的取值( 0 或 1 )将使整个校验码中的 “ 1 ” 的个数为奇数或偶数。

2、奇偶校验码的校验规律

整个校验码(有效信息位和校验位)中 “ 1 ”的个数
奇校验码奇数
偶校验码偶数

3、缺点

 具有局限性,奇偶校验只能发现数据代码中奇数位的出错情况,但不能纠正错误,常用于对存储器数据的检查或传输数据的检查。

4、用习题理解概念

例1 : 给出两个编码 100 1101 和 101 0111 的奇校验码和偶校验码。

解:设最高位为校验位,余 7 位是信息位,则对应的奇偶校验码为:

三、海明校验码

1、实现原理

在有效信息位中加入几个校验位形成海明码(又称汉明码),并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化。(即可发现错位,也可指出错位的位置,为自动纠错提供依据)

2、纠错理论【 L - 1 = D + C,且 D >= C】

编码最小码距 L 越大,其检测的错误的位数 D 越大,纠正错误的位数 C 也越大,且纠错能力小于等于检错能力

3、求解海明码的步骤

假设:海明码为 H_7H_6H_5H_4H_3H_2H_1

信息位(n)为 D_4D_3D_2D_1

校验位(k)为 P_3P_2P_1

步骤(共五步)说明
(1)确定海明码的位数

设 n 为有效信息的位数,k 为检验位的位数,则需满足 n+k\leq 2^k-1

(若要检测 2 位错,则需再增加 1 位校验位,即 k+1 位)

(2)确定校验位的分布规定校验位 P_i 在海明位号为 2^{i-1} 的位置上,其余各位为信息位。即 P1 的海明位号为 2^{i-1}=2^0=1,即 H1 为 P1;同理可知,P_2=2^{i-1}=2^1=2=H2,P_3=2^{i-1}=2^2=4=H4,
(3)分组以形成校验关系每个数据位用多个校验位进行校验,要满足:被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。(校验位不需要再被校验)
(4)校验位取值

校验位P_i的值为第 i 组(由该校验位校验的数据位)所有位求异或
二进制下用 1 表示真,0 表示假,则异或的运算法则为:

0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1)

(5)海明码的校验原理每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成 k 个校验方程。

4、用习题理解概念

例2 : 在 n = 4、k = 3 时,求 1010 的海明码。

解:如下图

四、CRC(循环冗余校验码)

1、基本思想

在 K 位信息码后再拼接 R 位的校验码,整个编码长度为 N 位,因此,CRC 又称 (N , K)码。

2、用习题理解概念

例3:设生成多项式为  G(x)=x^3+x^2+1 ,信息码为10 1001,求对应的 CRC 码。

解:如下图

五、习题(含真题)

1、用海明码对长度为 8 位的数据进行检错、纠错时,若能纠正一位错则校验位数至少为 (     C   ) 

A. 2                              B. 3                          C. 4                           D. 5

解:设校验位的位数为 k ,数据位的位数为 n ,海明码能纠正一位错应满足关系 2^k\geq n+k+1。当 n = 8 时,当 k = 4 时满足关系式,有 2^4=16\geqslant 8+4+1=13,即 校验位至少是 4 位。

 2、设在网络中传送采用偶校验的 ASCII 码,当收到的数据位为 10101001 时,可以断定(     C   )

A. 未出错            B. 出现偶数位错          C. 未出错或出现偶数位错          D. 出现奇数位错

解:一位奇偶校验码只能发现奇数位错误。

本题中,收到的数据中有偶数个 1(即4个“1”),这样可能没有出错,也可能出现了偶数位错误。(奇偶校验码无法发现偶数位错

3、能发现两位错误,并能纠正 1 位错的编码的是(   B   )

A. CRC 码                B. 海明码              C. 奇校验                 D. 偶校验码

解: (1)奇偶校验码都不能纠错。

(2)CRC 码可以发现并纠正信息串行读 / 写、存储或传送中出现的一位或多位错(与多项式的选取有关)

(3)海明码能发现两位错误,并纠正 1 位错。

相关文章:

【计组】校验码(奇偶校验码、海明校验码、CRC)

前言 1、小提示:本篇博文是参考王道,在复习 ASCII 码的基础上,总结校验码的相关学习知识点,并在最后搭配习题(含408真题)进行巩固练习。(对重点内容进行划线、标色) 2、适用人群&…...

File Inclusion

File Inclusion 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含…...

函数性能探测:更简单高效的 Serverless 规格选型方案

作者:拂衣、丛霄 2019 年 Berkeley 预测 Serverless 将取代 Serverful 计算成为云计算新范式。Serverless 为应用开发提供了一种全新系统架构。借助 2023 年由 OpenAI 所带来的 AIGC 风潮,以阿里云函数计算 FC、AWS Lambda 为代表的 Serverless 以其更高…...

嵌入式Linux Qt5 (C++)开发栏目概述

本栏目开始介绍Linux系统下的Qt C程序开发,资源是以嵌入式为切入点(现在Linux系统下的Qt C程序开发好像就是应用于嵌入式),那就跟着一起学习Linux系统下的Qt C程序开发知识,再扩展一下嵌入式的知识吧。我这里默认已经熟…...

C语言“牵手”微店商品详情数据方法,微店商品详情API接口申请指南

微店平台的商品详情通常包括以下信息: 商品名称:展示商品的名称,用于描述商品的特性和分类。 商品图片:展示商品的图片,可以有多张图片以展示不同角度和细节。 商品价格:显示商品的销售价格,可…...

C++ volatile

volatile 一、volatile 使用场景 volatile 是 C 和 C 中的一个关键字,用于告诉编译器不要对标记为 volatile 的变量进行优化,以确保每次访问都从内存中读取变量的最新值。主要用于以下情况: 硬件寄存器和内存映射设备:在访问硬…...

空洞卷积学习笔记

文章目录 1. 扩张卷积的提出2. 理解的难点 本片博客的主题思路来自于这篇文章——如何理解Dilated Convolutions(空洞卷积),但是作者似乎是很久之前写的,文字的排版很混乱,自己来写一个新的。 1. 扩张卷积的提出 Multi-Scale Context Aggre…...

WPF中的UseLayoutRounding和SnapsToDevicePixels

WPF中的UseLayoutRounding和SnapsToDevicePixels 最近在调试项目中的UI时发现几个诡异问题: Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。 自定义控件的边缘在某些窗体中显示模…...

Windows权限维持—自启动映像劫持粘滞键辅助屏保后门WinLogon

Windows权限维持—自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon 1. 前置2. 自启动2.1. 路径加载2.1.1. 放置文件2.1.2. 重启主机 2.2. 服务加载2.2.1. 创建服务2.2.2. 查看服务2.2.3. 重启主机 2.3. 注册表加载2.3.1. 添加启动项2.3.2. 查看注册表2.3.3. 重启…...

Mysql之explain详解

1. explain作用 使用explain可以展示出sql语句的执行计划,再根据sql的执行计划去判断这条sql有哪些点可以进行优化,从而让sql的效率达到最大化。 2. 执行计划各列含义 (1)id:id列是select的序列号,这个…...

每天一道leetcode:1926. 迷宫中离入口最近的出口(图论中等广度优先遍历)

今日份题目: 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 . 表示)和墙(用 表示)。同时给你迷宫的入口 entrance ,用 entrance [entrancerow, …...

Mysql_5.7下载安装与配置基础操作教程

目录 一、Mysql57下载与安装 二、尝试登录Mysql 三、配置Mysql环境变量 一、Mysql57下载与安装 首先,进入Mysql下载官网:MySQL Community Downloads 随后,选择版本5.7.43,系统选择Windows,随后下方会出现两个下载选…...

【业务功能篇68】电商项目相关核心设计

https证书 http 超文本传输协议: 超文本:包括:文字,图片,音频,视频等。 传输:客户端向服务端发东西,服务端向客户端发东西。 协议:三方协议。怎么传,错误…...

微信开发之一键退出群聊的技术实现

简要描述: 退出群聊 请求URL: http://域名地址/quitChatRoom 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…...

〔012〕Stable Diffusion 之 中文提示词自动翻译插件 篇

✨ 目录 🎈 翻译插件🎈 下载谷歌翻译🎈 谷歌翻译使用方法🎈 谷歌翻译使用效果 🎈 翻译插件 在插件列表中搜索 Prompt Translator可以看到有2个插件选项:一个是基于谷歌翻译 〔推荐〕、一个基于百度和deepl…...

【C++】一文带你初识C++继承

食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波:napori—Vaundy 1:21 ━━━━━━️💟──────── 3:23 …...

SDK是什么,SDK和API有什么区别

SDK(Software Development Kit)是一种开发工具包,通常由软件开发公司或平台提供,用于帮助开发人员构建、测试和集成特定平台或软件的应用程序。SDK 包含一系列的库、工具、示例代码和文档,旨在简化开发过程并提供所需的…...

golang中使用chan控制协程并发简单事例

func main() {processNum : 5ch : make(chan struct{}, processNum)for true {ch <- struct{}{}go func() {defer func() {<-ch}()fmt.Println("我是协程", time.Now().UnixNano())time.Sleep(time.Second * 5)}()} } 可以看到&#xff0c;这里每5s会执行一次带…...

好用画流程图软件推荐 excalidraw

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…...

【RP2040】香瓜树莓派RP2040之搭建开发环境(windows)

本文最后修改时间&#xff1a;2022年08月23日 01:57 一、本节简介 本节以树莓派pico开发板为例&#xff0c;搭建windows下的编译环境。 二、实验平台 1、硬件平台 1&#xff09;树莓派pico开发板 ①树莓派pico开发板 ②micro usb数据线 2&#xff09;电脑 2、软件平台 …...

Overleaf实战:利用multicol宏包实现LaTeX文档的灵活分栏布局

1. 为什么需要分栏布局&#xff1f; 第一次用LaTeX写论文时&#xff0c;我被期刊模板要求"双栏排版"整懵了。单栏文档写得好好的&#xff0c;突然要在同一页并排显示两列内容&#xff0c;还要处理图片表格的跨栏问题。传统\twocolumn命令虽然简单&#xff0c;但调整…...

全新UI 阅后即焚V2正式版系统源码_全开源_安全加密传输

概述 在数字化信息交流日益频繁的今天&#xff0c;如何安全、私密地传输敏感数据&#xff08;如商业机密、登录凭证、个人隐私&#xff09;已成为企业和个人用户共同面临的严峻挑战。传统的即时通讯工具往往存在聊天记录留存、云端备份等安全隐患&#xff0c;难以满足“阅后即…...

如何在 5 分钟内集成 human-panic:为你的 Rust CLI 应用添加专业级错误处理

如何在 5 分钟内集成 human-panic&#xff1a;为你的 Rust CLI 应用添加专业级错误处理 【免费下载链接】human-panic Panic messages for humans. 项目地址: https://gitcode.com/gh_mirrors/hu/human-panic human-panic 是一个专为 Rust CLI 应用设计的错误处理库&…...

CVPR2021明星算法LoFTR实战:在Ubuntu 20.04上从零搭建Python 3.7+Pytorch 1.6.0环境,跑通第一个图像匹配Demo

CVPR2021明星算法LoFTR实战&#xff1a;在Ubuntu 20.04上从零搭建Python 3.7Pytorch 1.6.0环境&#xff0c;跑通第一个图像匹配Demo 计算机视觉领域每年都会涌现出大量创新算法&#xff0c;而CVPR2021上发表的LoFTR&#xff08;Detector-Free Local Feature Matching with Tran…...

CircuitPython内存优化与PyCharm集成:嵌入式开发实战指南

1. 项目概述与核心挑战在嵌入式开发的世界里&#xff0c;CircuitPython以其极低的入门门槛和强大的硬件抽象能力&#xff0c;成为了连接创意与现实的桥梁。无论是驱动一串炫彩的NeoPixel灯带&#xff0c;还是读取传感器数据&#xff0c;CircuitPython都让这一切变得像在桌面Pyt…...

词达人自动化助手:终极指南让英语词汇学习效率提升10倍

词达人自动化助手&#xff1a;终极指南让英语词汇学习效率提升10倍 【免费下载链接】cdr 微信词达人&#xff0c;高正确率&#xff0c;高效简洁。支持班级任务及自选任务 项目地址: https://gitcode.com/gh_mirrors/cd/cdr 厌倦了在词达人平台上花费数小时完成重复的词汇…...

深度解析DriverStore Explorer:Windows驱动存储管理的终极解决方案

深度解析DriverStore Explorer&#xff1a;Windows驱动存储管理的终极解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows系统驱动管理是每个高级用户和系统管理员都会面临…...

Windows Subsystem for Android终极指南:5大核心优势与完整开发实战

Windows Subsystem for Android终极指南&#xff1a;5大核心优势与完整开发实战 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA Windows Subsystem for Andr…...

用Python手把手复现灰狼算法GWO:从狩猎行为到代码实现(附完整源码)

用Python手把手复现灰狼算法GWO&#xff1a;从狩猎行为到代码实现&#xff08;附完整源码&#xff09; 灰狼优化算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;作为一种新兴的群体智能算法&#xff0c;正逐渐在工程优化、机器学习参数调优等领域崭露头角。与传统的遗传…...

智慧展馆(数字孪生 + 三维重建)全解析

智慧展馆&#xff08;数字孪生 三维重建&#xff09;全解析一、核心技术体系&#xff08;含动态目标实时重构、数字孪生、透明建筑&#xff09;智慧展馆的数字化升级&#xff0c;核心依托四大核心技术 ——视频孪生、三维重建、动态目标实时重构、透明建筑渲染&#xff0c;四大…...