Показано с 1 по 10 из 20

Тема: Контрольная сумма ТРМ201

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Расчет контрольной суммы на Delphi

    //Расчет контрольной суммы по алгоритму овен
    Function TForm1.owenCRC16(str:string):string;
    const
    //AsChars: array[0..15] of Char = 'GHIJKLMNOPQRSTUV';
    HexChars: array[0..15] of Char = '0123456789ABCDEF';
    var
    b:byte;i,j:integer; crc:word;
    begin
    crc:= 0;
    for i:= 0 to (length(str)div 2)-1 do
    begin
    b:=strtoint('$'+copy(str,(2*i)+1,2));
    for j:=1 to 8 do
    begin
    if ((b xor(crc shr 8))and $80)>0 then
    begin
    crc:=crc shl 1;
    crc:=crc xor $8F57;
    end
    else
    crc:=crc shl 1;
    b:=b shl 1;
    end;
    end;
    result:=char(HexChars[crc div 4096])+
    char(HexChars[(crc mod 4096)div 256])+
    char(HexChars[((crc mod 4096)mod 256)div 16])+
    char(HexChars[((crc mod 4096)mod 256)mod 16]);
    end;
    Последний раз редактировалось denver; 17.01.2012 в 18:24.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •