delphi.gif (306 バイト) Delphi4で追加された整数型の使い方


toach.gif (917 バイト) LongWord(32ビット符号なし整数)

LongWordは、C言語のunsigned intに相当します。
Cardinalは、Delphi3.xまでは、2147483647までしか表現できませんでしたが、LongWordと同じになりました。
つまり、 4294967296まで表現できます。

 

toach.gif (917 バイト) Int64(64ビット整数)

Int64は64bitの整数です。これは、Win32で使用するLARGE_INTEGER型とは互換性がないので注意が必要です。
また、なぜかコンソールアプリケーションでも使えません。

 

delphi1.gif (322 バイト) 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.