ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
35310
aleksey (12.07.2005 21:01, просмотров: 3602)
Помогите перевести с С на Паскаль long CalcCRC32(long CRC, unsigned char Symbol) { long temp; CRC ^= -1l ^ Symbol; for(int k = 8; k--;) { temp = -(CRC & 1), CRC >>= 1, CRC ^= 0xEDB88320ul & temp; } CRC ^= -1l; return CRC; } Перевел так: function calccr32(crc:integer ;symbol:integer):integer; var k:integer; temp:integer; begin crc:= crc xor (-1 xor symbol); for k:=0 to 7 do begin temp:= -(CRC and 1); crc:=crc div 2; crc:=crc xor 3988292384 and temp; end; crc:=crc xor -1; calccr32:=crc; end; procedure TForm1.Button1Click(Sender: TObject); var crc:integer; begin crc:=-1; crc:=calccr32(crc,1); form1.caption:=inttostr(crc); end; Результат не правильный=457198665 В оригинале=151466134 Что не так?