-
Расчет контрольной суммы на 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.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума