Народ подскажите как вычислить чек сумму на дельфи, или помагите перевести функцию с с++
Код:
void add_ckecksum(unsigned char *raw, int count) {
unsigned long chksum = 0;
unsigned long ecx;
int i = 0;
for(i = 0; i < count; i += 4)
{
ecx = (unsigned long)raw[i];
ecx |= (unsigned long)raw[i + 1]<<8;
ecx |= (unsigned long)raw[i + 2]<<16;
ecx |= (unsigned long)raw[i + 3]<<24;
chksum ^= ecx;
}
memcpy(raw+count, (char *)&chksum, 4);
}
у меня вот как криво получилось
Код:
for i := 0 to ((Size-8) div 4)-1 do begin
ecx[0] := data1[i] xor data1[i+4] ;
ecx[1] := data1[i+1] xor data1[i+5] ;
ecx[2] := data1[i+2] xor data1[i+6] ;
ecx[3] := data1[i+3] xor data1[i+7] ;
end;