Delphi中如何将2个字节转换为1个16位数字?

use*_*778 2 delphi

所以我有2个字节,例如:13, 61

我想将它们转换成16位:3389

现在我正在使用该功能:

function IntPower(const N, k: integer): integer;
var
  i: Integer;
begin
  Result:= (256 * N) + k;
end;
Run Code Online (Sandbox Code Playgroud)

Delphi 有没有更好的方法来做到这一点?

And*_*and 5

两种选择是

function CreateWord(const A, B: byte): word;
begin
  result := word(A) shl 8 or B;
end;
Run Code Online (Sandbox Code Playgroud)

function CreateWord(const A, B: byte): word;
var
  WR: WordRec;
begin
  WR.Hi := A;
  WR.Lo := B;
  result := word(WR);
end;
Run Code Online (Sandbox Code Playgroud)

  • 另请参见MakeWord。 (2认同)