
算法
ywb201314
兵法有言,知己知彼,百战不殆
展开
-
循环冗余检验 (CRC) 算法原理
Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。算法原理假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将转载 2016-07-29 16:01:36 · 492 阅读 · 0 评论 -
java中CRC 校验参考代码
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。?12345转载 2016-08-10 15:30:13 · 835 阅读 · 0 评论 -
CRC算法(直接计算法和查表法)
CRC算法是在通讯领域广泛采用的校验算法。原理我就不说了,这里说一下简单的程序实现。以下均采用CRC多项式为0x1021即:g(x) = x16+x12+x5+x0;CRC的基本原理就不说了,那个搜一下就有了。 最基本的算法应该是按位计算了,这个方法可以适用于所有长度的数据校验,最为灵活,但由于是按位计算,其效率并不是最优,只适用于对速度不敏感的场合。基本的算法如下:uns转载 2016-08-08 09:30:05 · 23603 阅读 · 1 评论 -
CRC(查表法)-表的由来
原文地址:http://wenku.baidu.com/link?url=suTtOeeWF8n9eCvuZIFIHj6CSnAwEessZcHUlDD-YXZIbHE9R7VFOHFcNXnKPXDiqBsEaPyK6xjZK5p8hgBNNQD3wGk8Laluiqxt4s5FkXi转载 2016-08-08 09:27:20 · 1679 阅读 · 0 评论 -
模2运算的原理 模2加法,模2减法,模2乘法,模2除法
模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算转载 2016-08-05 16:16:28 · 20232 阅读 · 4 评论 -
CRC 生成多项式
是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接受方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。应满足以下条件:a、生成多项式的最高位和最低位必须为1。b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。c、不转载 2016-08-01 11:33:50 · 36938 阅读 · 2 评论 -
CCITT标准CRC16(1021) Java代码
背景:与GPS运营商做数据对接,图片、GPS、轨迹所有数据数据包中都有CRC校验值,需要对数据包进行校验。Java代码:[java] view plain copy print?package com.jst.util; /** * CRC-CCITT 算法校验类 * * @author amadowang * @version [版转载 2016-08-01 09:45:54 · 5263 阅读 · 0 评论 -
最详细易懂的CRC-16校验原理(附源程序)
from:http://www.openhw.org/chudonganjin/blog/12-08/230184_515e6.html 最详细易懂的CRC-16校验原理(附源程序)1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。2、生成CRC码的基本原理:任意一个由二进制位串组成的转载 2016-08-01 09:44:08 · 6493 阅读 · 1 评论 -
CRC32余式表生成算法
CRC32余式表生成算法:http://www.doc88.com/p-2416176487229.html转载 2016-08-01 09:10:05 · 2726 阅读 · 0 评论 -
c++、java CRC16算法
c++代码int get_crc16 (unsigned char *bufData, unsigned int buflen, unsigned char *pcrc){ int ret = 0; unsigned short CRC = 0xffff; unsigned short POLYNOMIAL = 0xa001; int i, j; if(bufData转载 2016-07-29 16:46:46 · 577 阅读 · 0 评论 -
CRC16 三种算法及c实现
标准CRC生成多项式如下表: 名称 生成多项式 简记式* 标准引用 CRC-4 x4+x+1 3 ITU G.704 CRC-8 x8+x5+x4+1 0x31 CRC-8 x8+x转载 2016-07-29 16:24:37 · 3493 阅读 · 0 评论 -
CRC16校验原理总结
CRC32太大了,CRC8觉得强度不够,折中选择CRC16校验. 线性编码理论。在发送端传送的K位二进制数据,以一定规则产生一个校验监督码(或者叫监督矩阵)r位,并负载信息后,构成一个新的二进制码序列共(K+R)位。最后发送出去。在接收端根据信息吗和CRC码禁言,是否出错。 CRC16监督式(美国标准):G(X)=X^16+X^15+X2+1 CRC16监督式(欧洲转载 2016-08-10 15:45:53 · 1074 阅读 · 0 评论