如何获得WORD类型的两个字节的内容

var
WD : Word;
begin
WD := $1234;
ShowMessage(Format('%d, %d', [WordRec(WD).Hi, WordRec(WD).Lo]));
end;

输出: 18,52
-----------------------------------------------------------------------------------
关于WordRec的定义如下(在SysUtils单元文件中定义):
WordRec = packed record
case Integer of
0: (Lo, Hi: Byte);
1: (Bytes: array [0..1] of Byte);
end;


可以看到通过类型转换,我们就可以很方便的利用它.很显然,这是利用了指针的方便.

当然不使用系统提供的record,我们也可以自己定义,仿照系统的例子,我定义勒如下的结构:
TWord = packed record
Lo: byte;
Hi: byte;
end;


看清楚了,的确是Lo在前面,而Hi在后面。这是形如$1234的整数在内存的排列是3412这个样子的.

评论

此博客中的热门博文

如何解决在Delphi2009中添加pas组件的问题

在Delphi中操作Sap对象造成内存增长的原因

杀死团队的七种武器(转)