Integer 是 Delphi 最常用的 32 位有符號整數。本文從二進制位模式出發,詳細演示最大值、最小值、零、正負數的補碼表示與組合語言賦值技巧。
位置:31 23 15 7 0
|------------|------------|------------|------------|
| 符號位 | 數值位 (31 位) |
| (31) | |
| 十進制 | 二進制 (32 位) | 十六進位 | 說明 |
|---|---|---|---|
| 2,147,483,647 | 01111111 11111111 11111111 11111111 | $7FFFFFFF | 最大值 (MaxInt) |
| -2,147,483,647 | 10000000 00000000 00000000 00000001 | $80000001 | 最小值+1 |
| -2,147,483,648 | 10000000 00000000 00000000 00000000 | $80000000 | 最小值 |
| -1 | 11111111 11111111 11111111 11111111 | $FFFFFFFF | 全 1 補碼 |
| 0 | 00000000 00000000 00000000 00000000 | $00000000 | 零 |
| 100 | 00000000 00000000 00000000 01100100 | $00000064 | 正數示例 |
| -100 | 11111111 11111111 11111111 10011100 | $FFFFFF9C | 負數補碼 |
var I: Integer;
begin
asm
mov I, 01111111111111111111111111111111b { MaxInt }
mov I, 10000000000000000000000000000000b { MinInt }
mov I, 11111111111111111111111111111111b { -1 }
mov I, 00000000000000000000000000000000b { 0 }
mov I, 00000000000000000000000001100100b { 100 }
mov I, 11111111111111111111111110011100b { -100 }
end;
end;
Delphi 組合語言支援 ...B / ...b 後綴表示二進制常數,提升位模式代碼可讀性。