`
rayloo
  • 浏览: 84994 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

CRC

J# 
阅读更多

public class CRC
{
static public int[] Table = new int[256];

static
{
for (int i = 0; i < 256; i++)
{
int r = i;
for (int j = 0; j < 8; j++)
if ((r & 1) != 0)
r = (r >>> 1) ^ 0xEDB88320;
else
r >>>= 1;
Table[i] = r;
}
}

int _value = -1;

public void Init()
{
_value = -1;
}

public void Update(byte[] data, int offset, int size)
{
for (int i = 0; i < size; i++)
_value = Table[(_value ^ data[offset + i]) & 0xFF] ^ (_value >>> 8);
}

public void Update(byte[] data)
{
int size = data.length;
for (int i = 0; i < size; i++)
_value = Table[(_value ^ data[i]) & 0xFF] ^ (_value >>> 8);
}

public void UpdateByte(int b)
{
_value = Table[(_value ^ b) & 0xFF] ^ (_value >>> 8);
}

public int GetDigest()
{
return _value ^ (-1);
}
}
分享到:
评论

相关推荐

    CRC校验工具(CRC8,CRC16,CRC32)

    本工具支持常用的所有CRC校验 比如: CRC-4/TU CRC-5/EPC CRC-5/ITU CRC-6/TU CRC-7/MMC CRC-8 CRC-8/ITU CRC-8/ROHC CRC-8/MAXIM CRC-16/BM CRC-16/MAXIM CRC-16/USB CRC-16/MODBUS CRC-16/CCITT CRC-16/CCITT-...

    Modbus RTU CRC校验详细步骤CRC值怎么计算

    RTU 模式采用CRC(Cyclical Redundancy Check)侦误值。 CRC 侦误值计算以下列步骤说明: 步骤一:载入一个内容为 FFFFH 之16-bits 寄存器,称之为『CRC』寄存器。 步骤二:将指令信息的第一个位组与16-bits CRC ...

    CRC-Calc.zip

    crc5_epc,crc5_itu,crc5_usb,crc6_itu,crc7_mmc,crc8,crc8_itu,crc8_rohc,crc8_maxim,crc16_ibm,crc16_maxim,crc16_usb,crc16_modbus,crc16_ccitt,crc16_ccitt_false,crc16_x25,crc16,xmodem,crc16_dnp,crc32,crc32_...

    CRC计算器 CRC逆向

    CRC计算器 CRC逆向,CRC所有参数可自定义

    CRC计算工具V3.3.0-64

    CRC-8 正序、CRC-8 逆序、CRC-16 (0xA001)、CRC-16 (0x8005)、CRC-16 (Modbus)、CRC-16 (Sick)、CRC-CCITT (XModem)、CRC-CCITT (0xFFFF)、CRC-CCITT (0x1D0F)、CRC-CCITT (Kermit)、CRC-DNP、IntelHex、BCC (异或...

    【很好】我学习CRC32、CRC16、CRC原理和算法的总结(与WINRAR结果一致).pdf

    "CRC 校验算法原理和实现" CRC(Cyclic Redundancy Check,循环冗余检查)是一种常用的错误检测算法,广泛应用于数据传输和存储中。CRC 的原理是通过对数据的二进制表示进行模 2 的多项式除法,得到余数作为校验值...

    CRC8 CRC16

    CRC-8 (正序) CRC-8 (逆序) CRC-16 (0xA001) CRC-16 (0x8005) CRC-16 (Modbus) CRC-CCITT (XModem) CRC-CCITT (Kermit) CRC-DNP IntelHex BCC (异或校验) LRC (纵向冗余校验) CRC-32 (循环冗余)

    使用公式节点计算CRC16校验码,版本labview2017

    unsigned int crc_cal16 (unsigned char *snd, unsigned char num){unsigned int c,crc=0xFFFF;for(i = 0; i ; i ++){c = snd[i] & 0x00FF;crc ^= c;for(j = 0;j ; j ++) {if (crc & 0x0001){crc&gt;&gt;=1;crc^=0xA001;}...

    并行CRC16,CRC8哈希碰撞测试的FPGA实现,使用Xilinx Ultrascale芯片测试

    最近做了一个小实验,实验要求通过并行CRC16和CRC8算法分别把24bit,16bit的数据输入压缩成16bit,8bit.并测试哈希碰撞(把最终的哈希值放到两个RAM中并逐个循环比较),很简单的一个工程,大家可以一起分享学习。 贴...

    CRC32 查表法源代码详细说明

    因而,在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都...

    CRC - 16算法与FPGA实现

    以16位CRC - 16校验码为例,在对CRC校验码原理和一般的串行CRC生成算法进行分析的基础上,改进 了串行CRC算法,并进一步推导出并行CRC算法。利用Quartus II集成环境和Verilog HDL语言工具将算法转 变为校验码生成电路,...

    C#计算CRC16校验码示例

    遇到要做个CRC校验,翻了一堆资料终于看明白了,内有详细注释,不是普通的词典法,是用算法计算出来的CRC,对于CRC16-CCITT,只需替换公式即可 /* CRC16实现原理 * * CRC16 | g(x)=x16+x15+x2+1 | 0x1,80,05 | ...

    CRC计算工具V3.4.0-64

    CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,...

    CRC计算器,实现了CRC4、CRC5、CRC6、CRC7、CRC8、CRC16、CRC32等21种算法

    CRC计算器,实现了CRC4、CRC5、CRC6、CRC7、CRC8、CRC16、CRC32等21种算法

    crc8查表法校验程序和校验检查软件

    crc8校验的原理,程序和检验软件 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。 CRC校验可以简单地描述为:例如...

    CRC校验计算器(CRC16和CRC32)

    CRC校验计算器(CRC16和CRC32)。BCC(Block Check Character/信息组校验码),异或校验;CRC(Cyclic Redundancy Check/循环冗余校验);LRC(Longitudinal Redundancy Check/纵向冗余校验)。

    CAN总线通信的CRC校验方法

    CAN通信采用CRC校验作为一种重要的错误检测手段,是节点判断CAN帧信息的完整性并产生确认应答的依据。  在现场总线通信和控制的实际应用中,工业应用环境往往是极端的温度以及电磁噪声或是其他的恶劣环境,系统在...

    通用 CRC算法 的纯Rust实现_rust_代码_下载

    CRC-3/GSM,CRC-3/ROHC,CRC-4/G-704,CRC-4/INTERLAKEN,CRC-5/EPC-C1G2,CRC-5/G-704,CRC-5/USB,CRC-6/CDMA2000-A, CRC-6/CDMA2000-B,CRC-6/DARC,CRC-6/G-704,CRC-6/GSM,CRC-7/MMC,CRC-7/ROHC,CRC-7/UMTS,CRC-8/AUTOSAR...

    VB实现CRC校验程序源码

    资源名:VB实现CRC校验程序源码 资源类型:程序源代码 源码说明: CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环...

    crc32的matlab程序

    CRC32计算程序,生成多项式是: G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 该生成多项式是IEEE的标准,应用在ETH,wifi等多个协议里面。 电脑上的文件校验工具,也基本采用这个crc32. 用matlab...

Global site tag (gtag.js) - Google Analytics