求C#代码转换成delphi(200)

  • 主题发起人 跳狗的墙墙
  • 开始时间

跳狗的墙墙

Unregistered / Unconfirmed
GUEST, unregistred user!
using System;namespace Controller.Common.Utility{ /// <summary> /// CRC 的摘要说明。 /// </summary> public class CRC { public const ushort cnCRC_16 = 0x8005; // CRC-16 = X16 + X15 + X2 + X0 public static readonly ushort[] TBL_CRC_16; //CRC_16的查找表 static CRC() { //初始化CRC_16查找表 TBL_CRC_16 = new ushort[256]; BuildTable16(cnCRC_16, TBL_CRC_16); } /// <summary> /// 计算CRC16查找表 /// </summary> /// <param name="aPoly"></param> /// <param name="Table_CRC"></param> public static void BuildTable16( ushort aPoly, ushort[] Table_CRC) { ushort i, j; ushort nData; ushort nAccum; for ( i = 0; i < 256; i++ ) { nData = ( ushort )( i << 8 ); nAccum = 0; for ( j = 0; j < 8; j++ ) { if ( (( nData ^ nAccum ) & 0x8000) != 0 ) nAccum = (ushort)(( nAccum << 1 ) ^ aPoly); else nAccum <<= 1; nData <<= 1; } Table_CRC = nAccum; } } /// <summary> /// 计算 16 位 CRC 值,CRC-16 或 CRC-CCITT /// </summary> /// <param name="Table_CRC"></param> /// <param name="aData"></param> /// <param name="aSize"></param> /// <returns></returns> public static ushort CRC_16( ushort[] Table_CRC, byte[] data, int offset, int len) { ushort nAccum = 0; for (int i = 0; i < len; i++ ) { nAccum = (ushort)(( nAccum << 8 ) ^ ( ushort )Table_CRC[( nAccum >> 8 ) ^ data[i + offset]]); } return nAccum; } /// <summary> /// 计算CRC_16校验值 /// </summary> /// <param name="data"></param> /// <returns></returns> public static byte[] CRC_16( byte[] data ) { return CRC_16( data, 0, data.Length ); } /// <summary> /// 计算CRC_16校验值 /// </summary> /// <param name="data"></param> /// <returns></returns> public static byte[] CRC_16( byte[] data, int offset, int len ) { ushort crc = CRC.CRC_16( CRC.TBL_CRC_16, data, offset, len ); return new byte[]{ (byte)( crc >> 8 ), (byte)( crc & 0x00FF ) }; } }}谢谢
 
X

xianjun

Unregistered / Unconfirmed
GUEST, unregistred user!
这种没有必要自己转,直接找一下Delphi版的计算CRC的源代码,很多的。http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1268&bih=646&q=delphi+CRC-16&aq=f&aqi=&aql=&oq=&gs_rfai=
 

Similar threads

I
回复
0
查看
662
import
I
I
回复
0
查看
642
import
I
I
回复
0
查看
572
import
I
I
回复
0
查看
543
import
I
顶部