delphi数据类型的范围
代码
1 unit Unit1;
2 interface
3 uses
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls;
6 type
7 TForm1 = class(TForm)
8 Button1: TButton;
9 Button2: TButton;
10 procedure Button1Click(Sender: TObject);
11 procedure Button2Click(Sender: TObject);
12 private
13 { Private declarations }
14 public
15 { Public declarations }
16 end;
17 var
18 Form1: TForm1;
19 implementation
20
21 {$R *.dfm}
22 procedure TForm1.Button1Click(Sender: TObject);
23 var
24 B: Byte; //B是8位的
25 W: Word; //W是16位的
26 begin
27 W := $1234; //将16进制常数$1234赋值给W
28 B := W; //B得到的值是W的低8位,即16进制的$34,也即10进制的52
29 ShowMessage(IntToStr(B)); //显示B的结果值52
30 end;
31 procedure TForm1.Button2Click(Sender: TObject);
32 var
33 S: AnsiString;
34 WS: WideString;
35 begin
36 S := '胡之恨';
37 WS := S;
38 ShowMessage(S[1]); //显示的是乱码,因为S[1]取出的是‘胡’的一半
39 ShowMessage(WS[1]); //显示'胡'
40 end;
41 procedure TForm1.Button3Click(Sender: TObject);
42 var
43 B: Byte;
44 begin
45 B:=255;
46 {$R+}//允许越过范围
47 B := B + 1;
48 ShowMessage(IntToStr(B));
49 end;
50 end.
2 interface
3 uses
4 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 Dialogs, StdCtrls;
6 type
7 TForm1 = class(TForm)
8 Button1: TButton;
9 Button2: TButton;
10 procedure Button1Click(Sender: TObject);
11 procedure Button2Click(Sender: TObject);
12 private
13 { Private declarations }
14 public
15 { Public declarations }
16 end;
17 var
18 Form1: TForm1;
19 implementation
20
21 {$R *.dfm}
22 procedure TForm1.Button1Click(Sender: TObject);
23 var
24 B: Byte; //B是8位的
25 W: Word; //W是16位的
26 begin
27 W := $1234; //将16进制常数$1234赋值给W
28 B := W; //B得到的值是W的低8位,即16进制的$34,也即10进制的52
29 ShowMessage(IntToStr(B)); //显示B的结果值52
30 end;
31 procedure TForm1.Button2Click(Sender: TObject);
32 var
33 S: AnsiString;
34 WS: WideString;
35 begin
36 S := '胡之恨';
37 WS := S;
38 ShowMessage(S[1]); //显示的是乱码,因为S[1]取出的是‘胡’的一半
39 ShowMessage(WS[1]); //显示'胡'
40 end;
41 procedure TForm1.Button3Click(Sender: TObject);
42 var
43 B: Byte;
44 begin
45 B:=255;
46 {$R+}//允许越过范围
47 B := B + 1;
48 ShowMessage(IntToStr(B));
49 end;
50 end.



浙公网安备 33010602011771号