[fpc-pascal] Range check error warning.
Gerhard Scholz
gs at g--s.de
Tue Mar 24 21:38:41 CET 2020
z := x AND y is a bitwise AND
(not (foldhiddenmask or currentfoldhiddenmask))
results in
dec: -193 hex: ffff ff3f bin: 1111 1111 1111 1111 1111 1111 0011 1111
this AND hex: $ff (bin: 11111 1111) gives
bin: 1111 1111 1111 1111 1111 1111 0011 1111
AND
bin: 0000 0000 0000 0000 0000 0000 1111 1111
--------------------------------------------------------------------
bin: 0000 0000 0000 0000 0000 0000 0011 1111
the result now definitely fits in a byte
The operators NOT, AND, OR, XOR (applied to integers) should be mentioned
somewhere in the documentation, maybe the explanation there is clearer
----- Original Message -----
From: "fredvs via fpc-pascal" <fpc-pascal at lists.freepascal.org>
To: <fpc-pascal at lists.freepascal.org>
Cc: "fredvs" <fiens at hotmail.com>
Sent: Tuesday, March 24, 2020 8:59 PM
Subject: Re: [fpc-pascal] Range check error warning.
>> what about
>
>> foldlevelmask = (not (foldhiddenmask or currentfoldhiddenmask)) and $ff ;
>
> Ha, this one fpc 3.3.1 like it!
>
> No more warning nor error.
>
> May I ask you what "and $ff" does, is it the same as "abs()" or keep it
> the
> negative value?
>
> Many thanks.
>
> Fre;D
>
>
>
> -----
> Many thanks ;-)
> --
> Sent from: http://free-pascal-general.1045716.n5.nabble.com/
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list