[fpc-pascal]runtime 201 with swapword function
Jonas Maebe
jonas at zeus.ugent.be
Fri Jul 25 16:30:24 CEST 2003
On vrijdag, jul 25, 2003, at 16:32 Europe/Brussels, James Mills wrote:
>> In Pascal, all calculations are performed using the base type (which
>> is
>> longint in FPC), so if w > 255, then w shl 8 > high(word) and will
>> result in a range check error when assigning to swapWord. Even if we
>> calculated everything using words, you'd still get an overflow error,
>> this time when doing the shl.
>
> How can I correct this ?
Use a typecast:
function swapWord(w: Word): Word;
begin
swapWord := Word((w SHL 8) OR (w SHR 8));
end;
Jonas
More information about the fpc-pascal
mailing list