如何计算数组中所有字节的总和(CRC)



我试图获得数组中所有字节的总和(CRC(。

我有一个数组0x3A, 0x07, 0x00, 0x00, 0x80, 0x04。此数组的CRC为3A

或者这个数组CCD_ 3。CRC等于=38

我检查了很多算法,但没有人不给我这个结果。

我检查过了(IEnumerable<byte> array) => (byte)(array.Sum(arr => arr) & 0xFF);

这个:

byte crc = 0;
for (var i = 0; i < data.Length; i++)
crc = crc8Table[(crc ^ data[i]) & 0xFF];
return crc;

或者这个:

byte checksum = 0x00;
for (int i = 0; i < data.Length; i++)
checksum ^= data[i];

但没有人尝试,没有给我一个真正的结果。我如何找到一种算法,它将为我提供阵列的CRC3A38

我的问题的解决方案。

byte b = 0xFF;
for (var i = 0; i < data.Length; i++)
b -= data[i];
return b;

最新更新