Delphi4で追加された整数型の使い方
LongWord(32ビット符号なし整数)
LongWordは、C言語のunsigned intに相当します。
Cardinalは、Delphi3.xまでは、2147483647までしか表現できませんでしたが、LongWordと同じになりました。
つまり、 4294967296まで表現できます。
Int64(64ビット整数)
Int64は64bitの整数です。これは、Win32で使用するLARGE_INTEGER型とは互換性がないので注意が必要です。
また、なぜかコンソールアプリケーションでも使えません。
Int64を使ったサンプルプログラム(n!を計算する)
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask;
type
TForm1 = class(TForm)
btnOK: TButton;
Label1: TLabel;
StaticText1: TStaticText;
Label2: TLabel;
Edit1: TEdit;
procedure btnOKClick(Sender: TObject);
private
{ Private 宣言 }
function G(n: Int64): Int64;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.btnOKClick(Sender: TObject);
var
n: Int64;
y: Int64;
begin
n := StrToInt(Edit1.Text);
if n > 20 then
MessageDlg('結果が大きすぎます。', mtWarning, [mbOK], 0)
else begin
y := G(n);
StaticText1.Caption := IntToStr(y);
end;
end;
function TForm1.G(n: Int64): Int64;
begin
if n = 0 then
Result := 1
else
Result := n * G(n - 1);
end;
end.