CRC——循环冗余校验码

CRC基于模2运算的校验码。

n=k+r。

n是CRC码的长度,k为信息码的位数,r为校验码的位数。

2的r次方>=k+r+1(正确)。

4位有效信息(1100)作循环编码,选择生成多项式G(X)=1011。

1.对信息位左移r位,即在信息位后加r个0。

得到1100000。

2.用1100000对G(X)进行模2除。

得到余数010。

3.用余数和1100000进行模2加。

得到1100010。


名称

生成多项式

简记式*

应用举例

CRC-4

x4+x+1

3

ITU G.704
CRC-8 x8+x5+x4+1 31 DS18B20

CRC-12

x12+x11+x3+x+1
5E  

CRC-16

x16+x15+x2+1

8005

IBM SDLC

CRC-ITU**

x16+x12+x5+1

1021

ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS

CRC-32

x32+x26+x23+...+x2+x+1

04C11DB7

ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS

CRC-32c

x32+x28+x27+...+x8+x6+1

1EDC6F41

SCTP
时间: 2024-09-29 16:42:17

CRC——循环冗余校验码的相关文章

CRC循环冗余校验码总结(转)

转自 http://blog.csdn.net/u012993936/article/details/45337069 一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting)的.实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较, 若两个CRC值不同,则说明数据通讯出现错误 那么其实

CRC循环冗余校验码总结

一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting)的.实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误 那么其实CRC有比较多种,比如CRC16.CRC32 ,为什么叫16.32呢.在这里并非与位有和关系.而是由所确定的多项式最高次幂

CRC校验程序1:CRC循环冗余校验码计算

CRC全称Cyclic Redundancy Check,中文称为循环冗余检查.它是一种数据传输检错的机制,能够对数据进行多项式计算,并将得到的结果与接收设备共享,保证数据传输的正确性和完整性. 算法流程如下: 1. Load a 16-bit register with FFFF hex (all ‘1’s). Call this the CRC register. 2. Exclusive OR the first 8-bit byte of the message with the low

循环冗余校验码

5.3.2 循环冗余校验检错方案 上节介绍的奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误. 1. CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的.其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端.当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定

CRC(循环冗余校验)

在线计算:http://www.ip33.com/crc.html 原文链接:https://blog.csdn.net/liyuanbhu/article/details/7882789 写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式.在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验.因此,掌握基本的CRC算法应是嵌入式程序员的基本技能.可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,平常在项目中见到的C

CRC循环冗余校验算法

CRC循环冗余校验算法是可以根据数据产生固定位数的散列函数,用来校验数据传输/保存后出现的错误,或者说是校验数据的完整性,例如压缩文件. 生成的散列值在传输或者存储之前计算出来并且附加到数据后面.一般循环冗余校验值都是32位的二进制数,即8位的16进制字符串. 一般冗余校验是值CRC-32 CRC-32的实现:使用CRC32类 public static void main(String[] args) throws Exception{ CRC32 crc32 = new CRC32(); c

关于CRC循环冗余校验的总结(C#)

1. 实验要求 (1)通过CRC(循环冗余校对)序列的计算,掌握C#语言中类的静态方法与动态方法的区别. (2)Shell与Windows Form 的通信作为扩展提高内容. 2. 实验内容  主要工作是:设计算法实现CRC序列的计算 CRC的计算过程总结如下: 1.  设置CRC寄存器,并给其赋值0xffff: 2.  读数据文件,并将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把 结果存入到CRC寄存器中. 3.  将CRC寄存器的数据右移一位,高位补零,并检查溢出位.

php crc32 计算字符串的 32 位 CRC(循环冗余校验)

注:本文转载 http://www.manongjc.com/article/499.html php crc32函数用于生成字符串的 32 位循环冗余校验码多项式.这通常用于检查传输的数据是否完整.本文章向大家介绍php crc32函数的基本语法及使用实例.需要的码农可以参考一下. crc32函数计算一个字符串的 crc32 多项式 crc32函数基本语法 int crc32 ( string $str ) 生成 str 的 32 位循环冗余校验码多项式.这通常用于检查传输的数据是否完整. 提

写给嵌入式程序员的循环冗余校验(CRC)算法入门引导

写给嵌入式程序员的循环冗余校验(CRC)算法入门引导 http://blog.csdn.net/liyuanbhu/article/details/7882789 前言 CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式.在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验.因此,掌握基本的CRC算法应是嵌入式程序员的基本技能.可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,平常在项目中见到的CRC的代码多数都是那种效率非常低下的实现方式. 其实,在网上有一篇介绍CRC