无法找到拆分Longint

时间:2017-06-23 17:57:33

标签: delphi long-integer

我不知道用于搜索的字词。

我有一个四字节的LongInt,我需要将前两个字节的值作为整数,并将最后两个字节的值作为另一个整数。

在这里有一个古老的屁记忆时刻。 :)

我想这与最不重要和最重要的事情有关,但一个好的搜索术语暗指我。

2 个答案:

答案 0 :(得分:5)

uses Winapi.Windows;

var
    L : longint;  // DWORD
    lsw : word;
    msw : word;

begin
   lsw := LoWord(L);
   msw := HiWord(L);
end;  

答案 1 :(得分:5)

有许多不同的方法可以解决这个问题:

uses
  Windows;

var
  Value : Longint;
  l : Word;
  h : Word;
begin
  Value := ...;
  l := LOWORD(Value);
  h := HIWORD(Value);
end;  

uses
  SysUtils;

var
  Value : Longint;
  l : Word;
  h : Word;
begin
  Value := ...;
  l := LongRec(Value).Lo;
  h := LongRec(Value).Hi;
end;

var
  Value : Longint;
  l : Word;
  h : Word;
begin
  Value := ...;
  l := Word(Value);
  h := Word(Value shr 16);
end;