首页 > 产品 > 经验 > crc算法,CRC校验算法

crc算法,CRC校验算法

来源:整理 时间:2023-08-30 04:29:27 编辑:智能门户 手机版

本文目录一览

1,CRC校验算法

偏移量,即从那个字节开始计算。

CRC校验算法

2,CRC算法怎么算

因为G(x),所以为10101,就是1*x^4+0*x^3+1*x^2+0*x^1+1*x^0所以,为10101,crc校验算法要是不会,可以继续问我
为什么不在网上找一下呢?crc一般常用的有查表法。以前我做一个串口传输入程序的时候,就是在网上找的源代码。然后自己稍稍改了一下就ok了。如果是用计算法的话,说老实话,我也不太明白。呵呵。不过真正应用的时候,重要的是结果。

CRC算法怎么算

3,循环冗余校验CRC的计算方法到底是怎么样的

首先会有b2(x),取b2(x)最高次数数n^d,乘上b1(x)(即在b1(x)最后加上b2(x)最高次数个0)得到c(x),将c(x)用模2除法除以b2(x),(相同位去0,不同位取1),得到的余数就是q(x)
100110010011左移六位,去除以g(x)=1000101,余数是110001,冗余后,b正确收到的应该是 100110010011 110001 这一串。

循环冗余校验CRC的计算方法到底是怎么样的

4,java中CRC算法是个什么东东

CRC算法实现有2种方法,一、查表法,二、直接计算,查表法的计算速度相对来说比较快,本人介绍的方法是直接计算法,用了2种方法实现,都是面向对象进行算法的封装。package com.wms.serial;/*** @author linduo* @version 2006/08/25*/public class CRC16 public int value; public CRC16() value = 0; } /** update CRC with byte b */ public void update(byte aByte) int a, b; a = (int) aByte; for (int count = 7; count >=0; count--) a = a << 1; b = (a >>>8) & 1; if ((value & 0x8000) != 0) value = ((value << 1) + b) ^ 0x1021; } else value = (value << 1) + b; } } value = value & 0xffff; return; } /** reset CRC value to 0 */ public void reset() value = 0; } public int getValue() return value; } public static void main(String[] args) CRC16 crc16 = new CRC16(); byte[] b = new byte[] //(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72 (byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE ,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00 ,(byte) 0x00,(byte)0x00 }; for (int k = 0; k < b.length; k++) crc16.update(b[k]); } System.out.println(Integer.toHexString(crc16.getValue())); System.out.println(Integer.toHexString(b.length));}}package com.wms.serial;public class CRC162 public static final void main(String[] args) CRC162 crc16 = new CRC162(); byte[] b = new byte[] //(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72 (byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE ,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00 ,(byte) 0x00,(byte)0x00 }; System.out.println(Integer.toHexString(crc16.encode(b))); //再把这个2f49替换成b数组的最后两个字节的数组,生成一个新的数组b2 byte[] b2 = new byte[] //(byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72 (byte) 0x2C,(byte)0x00,(byte)0xFF,(byte)0xFE ,(byte) 0xFE,(byte)0x04,(byte)0x00,(byte)0x00 ,(byte) 0x2f,(byte)0x49 }; System.out.println(Integer.toHexString(crc16.encode(b2))); //算出来是 0 //你可以自已构造一些byte进行加解密试试}public short encode(byte[] b) short CRC_x = 0; int pp = 65536; // 1<<16; int pp2 = 69665; // (1<<16) + (1<<12) + (1<<5) + 1 for(int i=0;i<b.length;i++) for(int j=0;j<8;j++) CRC_x = (short)((CRC_x<<1) + (((b[i]<<j)&0x80)>>7)); if((CRC_x/pp) == 1) CRC_x=(short)(CRC_x^pp2); } } } return CRC_x;}}
CRC校验码的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC. CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。 CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。最常用的CRC码的生成多项式有CRC16,CRC32.以CRC16为例,16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(既乘以2^16)后,再除以一个多项式,最后所得到的余数既是CRC码,如下式所示,其中K(X)表示n位的二进制序列数,G(X)为多项式,Q(X)为整数,R(X)是余数(既CRC码)。K(X)>>16=G(x)Q(x)+R(x)求CRC码所采用模2加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。生成CRC码的多项式如下,其中CRC-16和CRC-CCITT产生16位的CRC码,而CRC-32则产生的是32位的CRC码接收方将接收到的二进制序列数(包括信息码和CRC码)除以多项式,如果余数为0,则说明传输中无错误发生,否则说明传输有误,关于其原理这里不再多述。用软件计算CRC码时,接收方可以将接收到的信息码求CRC码,比较结果和接收到的CRC码是否相同。CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用CCITT-16即CRC16,其生成多项式为G(x)=x16+x12+x5+1,CRC-32的生成多项式为G(x)=x32+x26+x23+x22+x16+x11+x10+x16+x8+x7+x5+x4+x2+x+1
不懂。同楼主!
文章TAG:crc算法CRC校验算法

最近更新

  • 索引超出了数组界限,索引超出数组界限索引超出了数组界限,索引超出数组界限

    索引超出数组界限2,索引超出了数组界限该如何处理3,部件索引超过数组界限怎么解决4,索引超出了数组界限5,索引超出了数组界限如何解决6,c索引超出了数组界限我是初学者想利用数组解决一个递.....

    经验 日期:2023-08-30

  • 无线数据报文解码,ip数据报文解码表无线数据报文解码,ip数据报文解码表

    无线数据传输也是如此。单片机无线-3/什么是通信IC原理及其应用无线-3/通信IC原理及应用单片机无线-3/,数据Chain系统和无线数字通信系统[1]摘要:本文介绍了数据Chain系统的基本特点,并.....

    经验 日期:2023-08-30

  • 晶圆片,晶圆级芯片尺寸封装技术是3D封装晶圆片,晶圆级芯片尺寸封装技术是3D封装

    晶圆级芯片尺寸封装技术是3D封装2,硅晶片组成成分3,led晶元芯片和晶圆芯片是一样的么到底有没有台湾晶圆这个公司和4,国内国外的晶振片有哪些品牌5,硅晶圆实干什么的6,电脑心片是用什么材料.....

    经验 日期:2023-08-30

  • app数据分析,APP数据分析主要包含什么app数据分析,APP数据分析主要包含什么

    app数据的统计分析工具有哪些?如何做appsoftware数据分析并运营博客专栏论坛1行业数据行业数据对于一个APP来说非常重要。操作一app操作一-0应重点关注哪些数据?1.用户数量获取用户数量.....

    经验 日期:2023-08-30

  • htc手机数据连接不上怎么办htc手机数据连接不上怎么办

    I手机How-2不上电脑、htc天翼手机我为什么用移动卡数据/123。联通的卡htcOneX9手机数据连接已开通,htconeM7always-2不上Network数据如果链接总是提示正在打开该怎么办...你好1)重启手.....

    经验 日期:2023-08-30

  • 晶振的作用,有源晶振的作用是什么晶振的作用,有源晶振的作用是什么

    有源晶振的作用是什么2,电路板上晶振有什么作用啊3,电脑主板的晶振有何作用4,晶振的作用有哪些我是一个新手5,晶体振荡器的具体用途是什么6,收音机哪个晶振是什么作用1,有源晶振的作用是什么.....

    经验 日期:2023-08-30

  • 机器人的未来应用领域,仿生机器人的应用领域及前景机器人的未来应用领域,仿生机器人的应用领域及前景

    工业机器人-1/有哪些应用?未来机器人可能的能力和用途是什么未来机器人可能的能力和用途?横向来看,应用范围越来越广。比如水下机器人,抛光机器人,去毛刺机器人,玻璃清洗机器人,高压线作业机.....

    经验 日期:2023-08-30

  • 自动洗衣机内部结构,波轮洗衣机内部结构及图片自动洗衣机内部结构,波轮洗衣机内部结构及图片

    小天鹅波轮洗衣机什么是筒内连接器结构连接器是一个连接筒结构,用来连接洗衣桶内部结构。基本自动-0结构all-1洗衣机基本结构与普通的类似,即洗衣机排水电机结构工作原理排水电机。1、洗.....

    经验 日期:2023-08-30

205