1、CRC16校验
// CRC16效验
public string CalcCRC16(string strInput)
{
ushort crc = 0xffff;
ushort x;
byte[] data = GetBytesFromHexString(strInput);
for (int i = 0; i < data.Length; i++)
{
crc ^= (ushort)(data[i] << 8);
for (int j = 0; j < 8; j++)
{
if ((crc & 1) > 0)
crc = (ushort)((crc >> 1) ^ 0xA001);
else
crc >>= 1;
}
}
x = (byte)(crc >> 8); //高位置
crc = (byte)(crc << 8);
crc = (byte)(crc + x);
return crc.ToString("X4");
}
// byte
public Byte[] GetBytesFromHexString(string strInput)
{
Byte[] bytArOutput = new Byte[