文档章节

计算机体系结构(三)——循环冗余校验

白志华
 白志华
发布于 2015/10/18 10:57
字数 638
阅读 8
收藏 0
点赞 0
评论 0
    在校验码体系中,有各种校验的方法:有奇偶校验、海明码校验、循环冗余校验。今天就跟大家共同探讨一下常用的循环冗余校验吧。

    循环冗余校验(CRC,Cyclic Redundancy Check),是最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。已经被广泛应用于网络通信即磁盘存储。

    多项式:一个二进制数可以用一个多项式来表示,如1011 表示为 x 3+x 1+x 。最高次幂n,可以转为长度为n+1的二进制数。

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

    生成多项式:编码方程除以信息码的多项式,得到余数多项式即为校验码,解码方程将接收到的信息除以生成多项式,若余数=0,则说明正确,反则,则传输出错,余数的大小即为错误位置。

    校验码的具体生成过程为:
        ①假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。
        ②移位后的信息 除以 生成多项式G(x)得到的余数多项式,可转为R位二进制。
        ③将余数嵌入到原信息的后面。
例如:信息位为10100110 , 生成多项式为a(x)= x 5+x 4+x+1
    则C(x)=a(x)* x 5 = (x 7+x 5+x 2+x)* x  =  x 12+  x 10 +x 7+x 6

 

    余数为x 4+x ,转为二进制为11000,所以CRC码为10100110110000 。

以上方法是用多项式来解的,现在我们换用二进制方式来试试。
    信息位为10100110 , 生成多项式为a(x)= x 5+x 4+x+1。
    则a(x)转换为二进制为110011,信息位左移 R位(即最高次幂+1=6位),即在信息为后补5个0 ,得10100110000000,再除以a(x)转换的110011,取R位余数,即6位。然后将余数嵌入到原信息的后面 。看图:

 
余数为110000,6位,正好,补充到信息位的后面为:10100110110000,跟上面的方法结果一致。
   

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/7417547

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
计算机网络基本概述

计算机网络基本概述一、 计算机网络硬件软件:实现资源共享、信息传递 二、 计算机网络的功能数据通信、资源共享、增加数据可靠性、提高系统处理能力 三、网络协议与标准1、协议:一组控制数...

王浩hh ⋅ 01/01 ⋅ 0

OSI七层模型基础知识及各层常见应用

OSI七层模型基础知识及各层常见应用 OSI Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。OSI参考模型(OSI/RM)的全称...

水中月120 ⋅ 2013/11/29 ⋅ 0

【网络原理】第四章 数据链路层(二)

二、数据链路层的重要功能 (一)划分帧的边界(帧同步) ·方法一:字符计数法(面向字符) 在帧头用一个计数字段来表示整个帧中字符(包括自己)的个数。 工作方式:接收方接收到的第一个字...

xuan97916 ⋅ 2017/03/27 ⋅ 0

“好奇号”火星车和它搭载的软件

“好奇号”火星车和它搭载的软件(来自Erlang程序员的观点) 我十分好奇,忍不住想推测一下“好奇号”火星车上的软件究竟是个什么样的构造。我们已经知道,好奇号上的软件大部分都是用C语言写成...

oschina ⋅ 2012/08/27 ⋅ 24

故障诊断复习

OSI模型每一层功能 (1)、物理层:信息编码成电流脉冲或其他信号用于网络传输。 (2)、数据链路层:通过物理网络链路提供可靠的数据传输。 (3)、网络层:负责在原点和终点之间建立连接。一...

故障 ⋅ 2014/08/09 ⋅ 0

操作系统from清华大学向勇,陈渝 笔记(一)绪论

操作系统operating system(OS)清华大学向勇,陈渝 笔记 上课视频来源,B站 搜操作系统 96P的那个 UP主真乃分P狂魔!!! 下篇和下下篇在这里 二 操作系统的启动、中断、异常、系统调用 三 ...

github_36487770 ⋅ 2017/02/08 ⋅ 0

七牛的存储算法猜测

个人浏览网页的时候,有打标签的习惯。最近整理以往的标签的时候,发现积累了一些有关七牛公司存储策略的网页,遂决定整理一篇文章处理,以备记忆。当然,也希望对他人有用。 因为七牛公司的...

alexstocks ⋅ 2014/12/13 ⋅ 2

RAID磁盘阵列的原理

RAID磁盘阵列的原理 RAID概念 RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。 RAID的创建有...

linuxtouch ⋅ 2017/07/02 ⋅ 0

杭电计算机网络11选择题汇总

1.HDLC:面向比特的同步链路控制协议 2.TCP的“子类”:SMTP、Telnet(可以把利用远程主机资源)、Http UDP的“子类”:SNMP、FTP(TFTP) 3.使用2对5类无屏蔽双绞线:100BASE-TX 4.局域网的...

qq_36523667 ⋅ 01/11 ⋅ 0

mysql利用merge存储引擎分表的方法

1、创建分表,和主表的表结构相同,这里创建3个表 12 CREATE TABLE 新表 LIKE 旧表;CREATE TABLE nqhuacom1 LIKE nqhuacom; 2、复制主表数据到分表 123456 INSERT INTO nqhuacom1 SELECT * ...

zyt_1978 ⋅ 2016/07/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud构建微服务架构—创建“服务注册中心”

创建一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入需要的依赖内容: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par......

itcloud ⋅ 3分钟前 ⋅ 0

拖动

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>event</title> <style> #box { width: 100px; height: 100px; background-color: aquamarine; position: absolute; } </style......

fyliujj ⋅ 5分钟前 ⋅ 0

es6 polyfill array

polyfill之javascript函数的兼容写法——Array篇 1. Array.isArray(obj) if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[objec......

球球 ⋅ 7分钟前 ⋅ 0

kibana启动异常

检查一下:kibana.yml 每一对key:value中,冒号之后应有空格。

增删改查1 ⋅ 9分钟前 ⋅ 0

js修改img的src属性刷新图片时的图片缓存问题

问题:上传一张图片,通过js更新src属性刷新图片使其即时显示时, 当img的src当前的url与上次地址无变化时(只更改图片,名称不变,不同图片名称相同)图片不变化(仍显示原来的图片) 但通过...

HaierBrother ⋅ 9分钟前 ⋅ 0

Mysql

1.Jdbc Url 设置allowMultiQueries为true和false mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可。 参数名称 参数说明 缺省...

瑟青豆 ⋅ 13分钟前 ⋅ 0

mysql导出导入表结构与数据

当我们需要进行数据迁移时,mysql自带的mysqldump会是最好的方式。 1.导出某张表的结构和数据 首先,我们应当使用服务器,打开终端,连接到所需要导出的表所在的服务器上。执行命令: mysqld...

hengbao5 ⋅ 13分钟前 ⋅ 0

世界杯也走向“比拼”大数据的时代

《日本经济新闻》6月19日报道称,俄罗斯足球世界杯已于6月14日揭开战幕。作为第21次举办的足球世界杯,如何活用大数据有可能成为决定各支球队胜负的重要因素。从对阵球队的分析到战术建议,还...

加米谷大数据 ⋅ 13分钟前 ⋅ 0

金额转为千分制,金额转中文大写

金额转关为大写 js /** 数字金额大写转换(可以处理整数,小数,负数) */ function digitUppercase(n){ if(!n) reutrn "" let fraction = ['角', '分']; let digit = ['零', '壹', '贰', '叁', ...

YXMBetter ⋅ 16分钟前 ⋅ 0

开发利器JRebel部署SpringBoot项目

不要以为年纪轻轻就跌倒了人生谷底,未来还有更大的下降空间等着你。 idea下载和安装JRebel 激活JRebel 访问https://my.jrebel.com/ 使用facebook或twitter登录 勾选 Build project automati...

郑龙飞 ⋅ 22分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部