Тема: CRC24
Показать сообщение отдельно
  #3  
Старый 18.04.2020, 22:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вот правильный код из первой ссылки:
Код:
function CRC24(s : String) : Cardinal;
const
  crcInit = $000B704CE;
  crcPoly = $001864CFB;
var
  i,k: integer;
begin
  Result:= crcInit;
  for k:=1 to length(s) do
    begin
      Result:= Result xor (ord(s[k]) shl 16);
      for i:=0 to 7 do
        begin
          Result:= Result shl 1;
          if (Result and $1000000) <> 0 then
            Result:= Result xor crcPoly;
        end;
    end;
  Result:= Result and $FFFFFF;
end;
Но он, вроде, дает тот же результат, что и твой.
Ты уверен, что там на вход идет строка??? Может там ffff012001 это бинарное значение?
Ответить с цитированием