Delphi CRC16校验算法实现(转)】的更多相关文章

循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC.它是利用除法及余数的原理来作错误侦测(Error Detecting)的.实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误. 根据应用环境与习惯的不同,CRC又可分为以下几种标准: ①CRC-12码: ②CRC-16码: ③CRC-CCITT码: ④CRC-32码. CRC-12码通常用来传送6-…
var CRC = {}; CRC.CRC16 = function (data) { var len = data.length; if (len > 0) { var crc = 0xFFFF; for (var i = 0; i < len; i++) { crc = (crc ^ (data[i])); for (var j = 0; j < 8; j++) { crc = (crc & 1) != 0 ? ((crc >> 1) ^ 0xA001) : (c…
var CRC = {}; CRC._auchCRCHi = [ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0…
封装一个静态类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestApp { public class CRC { #region CRC16 public static byte[] CRC16(byte[] data) { int len = data.Length; ) { usho…
def crc16(x, invert): a = 0xFFFF b = 0xA001 for byte in x: a ^= ord(byte) for i in range(8): last = a % 2 a >>= 1 if last == 1: a ^= b s = hex(a).upper() return s[4:6]+s[2:4] if invert == True else s[2:4]+s[4:6] 示例: print(crc16("012345678"…
一.CRC16校验码的使用 现选择最常用的CRC-16校验,说明它的使用方法. 根据Modbus协议,常规485通讯的信息发送形式如下: 地址 功能码 数据信息 校验码 1byte 1byte nbyte 2byte CRC校验是前面几段数据内容的校验值,为一个16位数据,发送时,低8位在前,高8为最后. 例如:信息字段代码为: 1011001,校验字段为:1010. 发送方:发出的传输字段为: 1 0 1 1 0 0 1 1 0 10 信息字段 校验字段 接收方:使用相同的计算方法计算出信息字…
PHP CRC16 校验码的算法如何使用最近用到CRC16, 我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1 最后完整的代码就是 01030118000105F1 我现在需要用php程序,写个函数,来计算这个 05F1 , 网上很难找到 php语言中的CRC16 应用实例,昨晚发现php.net官方有这样一个介绍.http://cn.php.net/manual/en/function.crc32.php PHP code I mad…
/** * CRC校验算法工具类 */ public class CRCUtil { public static String getCRC(String data) { data = data.replace(" ", ""); int len = data.length(); if (!(len % 2 == 0)) { return "0000"; } int num = len / 2; byte[] para = new byte[nu…
CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X16+X15+X2+1. 闲言少叙,下面是查表法计算CRC16的代码: /******************************************************************************* * Copyright (c) 2012 ICPUB.NET. A…
[csharp] view plaincopyprint? using System; using System.Collections.Generic; using System.Text; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace smsForCsharp.CRC { /// <summary> /// 消息CRC校验算法 /// </summary> pub…