当前位置:文档之家› Pascal 数据类型

Pascal 数据类型

Pascal 数据类型
Pascal 数据类型

Pascal 数据类型

整型

注意:int64不是有序类型,所以不能作为for循环的循环变量,而longint, integer基本一样maxlongint=2^31-1

int64最大有2^63-1 特别的

var a:Array[1..5] of int64; 读入不能直接读入数组元素要这样

var t:int64;

for i:=1 to 5 do

begin

read(t);

a[i]:=t;

end;

更特别的qword是无符号的int64,最大2^64-1

另外,直接给一个int64类型的变量赋值一个超过longint范围的整数是不合法的,例如:定义a为int64类型,有如下语句:a:=8000000000; 编译就通不过。

类似的,以下三条语句也通不过编译:

a:=2*4000000000;

a:=800000*10000;

a:=a*8000000000;

这是因为fp在表达式的计算过程中用来存储整数的最大默认类型为longint,而不是int64。

当表达式的中间值超过longint时,fp会用实型来储存中间值,而实型是不能直接赋给整型的。

解决方法:

分成两步赋值,先执行a:=1; 然后执行a:=a*800000*10000;

需要强调的是,第二步赋值中一定要把8000000000拆成若干个不超过longint型的整数的和或乘积。如嫌上述方法麻烦,还可以利用截尾函数trunc,代码如下:

Var tmp:double; a:int64;

begin

tmp:=8000000000;

a:=trunc(tmp);

end.

2.实型

相关主题
文本预览
相关文档 最新文档