[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