Cardinal 是 4 位元組無符號的整型, 先看一個例數:
| Cardinal 例數: |
4277991664 |
| 按位元組劃分: |
第四位元組 |
第三位元組 |
第二位元組 |
第一位元組 |
| 二進位: |
11111110 |
11111100 |
11111000 |
11110000 |
| 十六進位: |
FE |
FC |
F8 |
F0 |
| 十進位: |
254 |
252 |
248 |
240 |
| 按雙位元組劃分: |
高兩位 |
低兩位 |
| 二進位: |
1111111011111100 |
1111100011110000 |
| 十六進位: |
FEFC |
F8F0 |
| 十進位: |
65276 |
63728 |
//可以用 Lo 函數提取它的低位元組(也就是第一個位元組)const c: Cardinal = 4277991664;begin ShowMessageFmt('%d', [Lo(c)]); {240}end;//其實不使用 Lo 函數, 通過 Byte 類型轉換也可以擷取第一個位元組const c: Cardinal = 4277991664;begin ShowMessageFmt('%d', [Byte(c)]); {240}end;//Hi 函數說是擷取高位位元組, 其實是擷取第二個位元組const c: Cardinal = 4277991664;begin ShowMessageFmt('%d', [Hi(c)]); {248}end;//如果要擷取低兩位, 貌似應該有個 LoWord 函數; 確實有, 但它不是函數, 只是 Word 類型的一個別稱.const c: Cardinal = 4277991664;begin ShowMessageFmt('%d', [LoWord(c)]); {63728} ShowMessageFmt('%d', [Word(c)]); {63728}end;//HiWord 函數是提取高兩位的const c: Cardinal = 4277991664;begin ShowMessageFmt('%d', [HiWord(c)]); {65276}end;
說說 LoWord 和 HiWord 的用途:
譬如在一個滑鼠訊息的訊息參數 lParam 中存放著滑鼠位置. lParam 是 4 位元組的, 它的低兩位存放 x、高兩位存放 y ...
我在這個例子中用到過: http://www.cnblogs.com/del/archive/2008/04/19/1160968.html
System 單元下的公用函數目錄