Code: Alles auswählen
program t;
{$mode delphi} {$Q+} {$R+}
uses crt, sysutils;
var
q: qword = high(qword);
c: cardinal = high(cardinal);
w: word = high(word);
b: byte = high(byte);
procedure generateOverflow(q:qword; c:cardinal; w:word; b:byte);
begin
try
if q<>0 then inc(q);
if c<>0 then inc(c);
if w<>0 then inc(w);
if b<>0 then inc(b);
except
on e: exception do
writeln(e.classname,': ',e.message);
end;
end;
begin
write('Max64BitValue: ', q, ' - '); generateOverflow(q,0,0,0);
write('Max32BitValue: ', c, ' - '); generateOverflow(0,c,0,0);
write('Max16BitValue: ', w, ' - '); generateOverflow(0,0,w,0);
write('Max8BitValue: ', b, ' - '); generateOverflow(0,0,0,b);
end.
Code: Alles auswählen
Max64BitValue: 18446744073709551615 - EIntOverflow: Arithmetic overflow
Max32BitValue: 4294967295 - ERangeError: Range check error
Max16BitValue: 65535 - ERangeError: Range check error
Max8BitValue: 255 - ERangeError: Range check error