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

问题描述 投票:0回答:1

我试图求和数组(CRC)中的所有字节。

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

或此数组0x3A 0x09 0x00 0x00 0x80 0x03 0x01 0x00。 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];

但是没有人尝试没有给我一个真实的结果。如何找到一种算法,该算法将为数组提供CRC [3A38

c# arrays crc
1个回答
0
投票

我的问题的解决方案。谢谢大家的帮助!

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

return b;
© www.soinside.com 2019 - 2024. All rights reserved.