public byte[] GenerateTable(CRC8_POLY polynomial) { byte[] csTable = new byte[256]; for (int i = 0; i < 256; ++i) { int curr = i; for (int j = 0; j < 8; ++j) { if ((curr & 0x80) != 0) { curr = (curr << 1) ^ (int)polynomial; } else { curr <<= 1; } } csTable[i] = (byte)curr; } return(csTable); }
public byte[] GenerateTable(CRC8_POLY polynomial) { byte[] csTable = new byte[256]; for (int i = 0; i < 256; ++i) { int curr = i; for (int j = 0; j < 8; ++j) { if ((curr & 0x80) != 0) { curr = (curr << 1) ^ (int)polynomial; } else { curr <<= 1; } } csTable[i] = (byte)curr; } return csTable; }
public static string CRC8(byte[] data, CRC8_POLY poly) { byte[] table = new byte[256]; for (int i = 0; i < 256; ++i) { int curr = (byte)i; for (int j = 0; j < 8; ++j) { if ((curr & 0x80) != 0) { curr = (curr << 1) ^ (int)poly; } else { curr <<= 1; } } table[i] = (byte)curr; } byte[] res = new byte[] { ReflectByte(0xe3) }; //начальная инициализация foreach (byte b in data) { res[0] = table[res[0] ^ b]; } return(Utils.Bin2AHex(res)); }
public CRC8Calc(CRC8_POLY polynomial) { this.table = this.GenerateTable(polynomial); }
public CRC8Calc(CRC8_POLY polynomial) { this.table = this.GenerateTable(polynomial); }
/// <summary> /// . /// </summary> /// /// <param name="polynomial"> . </param> /// /// <returns> . </returns> public Byte[] GenerateTable(CRC8_POLY polynomial) { Byte[] csTable = new Byte[256]; for (Int32 i = 0; i < 256; ++i) { Int32 curr = i; for (Int32 j = 0; j < 8; ++j) { if ((curr & 0x80) != 0) curr = (curr << 1) ^ (Int32)polynomial; else curr <<= 1; } csTable[i] = (Byte)curr; } return csTable; }
public CrcNet(CRC8_POLY polynomial) { this.table = this.GenerateTable(polynomial); }
public Program(CRC8_POLY polynomial) { this.table = this.GenerateTable(polynomial); }