HEX 文字列から Kermit CRC 値を取得する関数に取り組んでいます。DELPHI にコードがあります。私は .NET 開発者で、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;
この Web ページからコードを取得しました: Kermit CRC in DELPHI
Delphi関数は正しいと思います。誰かがコードを C# に変換できれば、それは素晴らしいことです。C#に変換しようとしたのですが、WORDのデータ型とDelphiのLO関数で迷ってしまいました。皆さん、ありがとうございました。