Я работаю над функцией, которая даст мне значение ККМ Kermit из строки HEX. У меня есть код в DELPHI. Я разработчик .NET и нуждаюсь в коде в C#.Преобразование CRC-CCITT Kermit 16 Код DELPHI в C#
function CRC_16(cadena : string):word;
var
valuehex : word;
i: integer;
CRC : word;
Begin
CRC := 0;
for i := 1 to length(cadena) do
begin
valuehex := ((ord(cadena[i]) XOR CRC) AND $0F) * $1081;
CRC := CRC SHR 4;
CRC := CRC XOR valuehex;
valuehex := (((ord(cadena[i]) SHR 4) XOR LO(CRC)) AND $0F);
CRC := CRC SHR 4;
CRC := CRC XOR (valuehex * $1081);
end;
CRC_16 := (LO(CRC) SHL 8) OR HI(CRC);
end;
Я получил код с этой страницы: Kermit CRC in DELPHI
Я предполагаю, что функция Delphi правильно. Если кто-то может конвертировать код в C#, это будет здорово. Я попытался преобразовать в C#, но потерялся в типе данных WORD и функции LO Delphi. Спасибо вам всем.
В Delphi функция действительно должна быть определена как 'function CRC_16 (const cadena: string): word;'. –