2017-06-23 34 views
3

我不知道用於搜索的詞。找不到搜索項來分割Longint

我有一個四字節的LongInt,我需要得到的前兩個字節的值作爲一個整數和最後兩個字節相同的另一個整數。

這裏有一個老屁的記憶時刻。 :)

我想這是與最不重要和最重要的事情,但一個很好的搜索術語暗指我。

+2

低和高字通常是使用什麼,據我所知。 –

回答

5
uses Winapi.Windows; 

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

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

Arrrghhh,拍額頭。謝謝戴夫。 – X10WannaBe

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;