Мне нужно преобразовать этот код в Delphi, и я не знаю, как:Преобразование контрольной суммы в Delphi
{
LRC=0
for (ch=1;ch<n+1;ch++){
LRC=LRC^BYTE[ch];
}
LRC=LRC^ETX;
}
Мне нужно преобразовать этот код в Delphi, и я не знаю, как:Преобразование контрольной суммы в Delphi
{
LRC=0
for (ch=1;ch<n+1;ch++){
LRC=LRC^BYTE[ch];
}
LRC=LRC^ETX;
}
ключи к пониманию этого являются следующие:
^
есть. Это побитовое xor.В Delphi код будет, вероятно, выглядеть следующим образом:
function CalcChecksum(const buff: array of Byte): Byte;
const
ETX = ...; // you'll need to obtain your value from the C source code
var
i: Integer;
begin
Result := 0;
for i := low(buff) to high(buff) do
Result := Result xor buff[i];
Result := Result xor ETX;
end;
Код C использует 1-на основе массивов, которые, ну, странно, мягко говоря. В Delphi я бы предположил, что параметр открытого массива будет иметь наибольший смысл.
Я скорее предполагаю, что код C работает с массивом unsigned char
, судя по именам переменных. Тем не менее, вам действительно нужно убедиться, что вы понимаете типы данных, которые связаны с тем, что мои догадки ошибочны.
С какой задачей вы столкнулись? –