побитовое дополнение в Delphi.(Перевод оператора C # ~) - PullRequest
0 голосов
/ 20 мая 2018

У меня есть код C # для вычисления байта контрольной суммы для команд, отправляемых на конкретное последовательное устройство.Мне нужна помощь, чтобы перевести на эту функцию Delphi 10.x для Windows, а также для Delphi Android (если он другой).

C # код

public byte CheckSum(byte[] btAryBuffer, int nStartPos, int nLen)
{
   byte btSum = 0x00;
   for (int nloop = nStartPos; nloop < nStartPos + nLen; nloop++ )
   {
      btSum += btAryBuffer[nloop];
   }
   return Convert.ToByte(((~btSum) + 1) & 0xFF);
}

Delphi код

function CalcCheckSum(buffer: TArray<byte>; nStartPos: Integer; nLen: Integer): Byte;
var i: Integer;
begin
  Result := 0;
  i := nStartPos;
  while i < nStartPos + nLen do
  begin
     Result := Result + buffer[i];
     Inc(i);
  end; 
  Result := ???
end;

1 Ответ

0 голосов
/ 20 мая 2018
 Result := ((not Result) + 1) and $FF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...