Longint [ HP Pascal/iX Programmer's Guide ] MPE/iX 5.0 Documentation
HP Pascal/iX Programmer's Guide
Longint
The predefined data type longint is an integer in the range -263..263-1
that is stored in 64 bits. The compiler option OVFLCHECK has no effect
on 64 bit multiply.
Note that there are no longint constants in the compiler. Therefore,
numbers outside of the range minint .. maxint can not be expressed
directly. The compiler option TYPE_COERCION must be used with a run-time
computation. If the numbers are constants, they must be typed coerced to
longint so they do not integer overflow.
Example
$standard_level 'hp_modcal'$
program prog_longint(output);
var i : integer;
b : longint;
type rec = record
case integer of
0:(l : longint);
1:(f1,f2: integer);
end;
const v_rec = rec[f1: hex('1'),
f2: hex('ffffffff')]; { longint constant field }
begin
b := v_rec.l;
writeln(b);
try
i := b; { run-time error }
recover ;
$push; type_coercion 'conversion'$
b := longint(1000000) * 1000000;
$pop$
writeln(b);
end.
Output:
8589934591
1000000000000
MPE/iX 5.0 Documentation