我有一个Bytes
定义如下的多维数组:
type
TRow = array[0..6] of Byte;
var
All: array[0..19112079] of TRow;
现在,我想生成数组包含的每一行的唯一校验和并保存到文件中,如下所示:
var
I: Integer;
begin
for I := 0 to 19112079 do
begin
Checksum := GenerateChecksum(All[I]);
Writeln(F, Checksum);
end;
end;
我应该如何处理该GenerateChecksum()
功能?我试过xor
and CRC32
,但它们并不真正适合这项任务,因为它们返回重复的值。我想为每一行生成一个唯一的校验和。
编辑 哦,校验和应该以允许比较行的方式计算。我想获取不同行的两个校验和,并判断其中一个是否大于另一个、小于另一个或相等。有没有机会实现这样的目标?
EDIT2 相邻两行中的示例数据:
Row x - 1: 120, 444, 323, 984, 1024, 76, 130
Row x: 120, 444, 323, 984, 1024, 76, 222
Row x + 1: 120, 444, 323, 984, 1024, 76, 121
. . .
Row x + n: 120, 444, 323, 984, 6333, 33, 935
谢谢你。