[expr] bit-wise "and" operator, dual of [|] Arguments must be integers, result is an integer. Bit ''n'' of the result is 1 if bit ''n'' of each argument is 1. Otherwise, bit ''n'' of the result is 0. For negative arguments, we use the extended definition of [~] that '''[~]$a[==]-1-$a'''. There are then the following cases: %| Case | Result |% &| $a[>=]0,$b>=0 | Ordinary bitwise '''&''' |& &| $a>=0,$b[<]0 | `$a&$b == $a & ~(~$b)` ''Contrapositive law'' <
> `$a&$b == $a & ~ (-1-$b)` ''Extended definition of [~]'' <
> Since -1-$b is positive, $a & ~(-1-$b) can be evaluated in bitwise fashion. |& &| $a<0,$b>=0 | Commute to ($b & $a) and use the calculation above |& &| $a<0,$b<0 | `$a&$b == ~ (~$a <> ~$b)` ''De Morgan's Law'' <
> `$a&$b == ~ ((-1-$a) <> (-1-$b))` ''Extended definition of [~]'' <
> `$a&$b == -1-((-1-$a) <> (-1-$b))` ''Extended definition of [~]'' <
> Since [-]1-$a and -1-$b are both positive, the expression ((-1-$a) [<>] (-1-$b)) can be evaluated in the ordinary bitwise fashion. |& For logical/short-cut "and" use the [&&] operator. ---- !!!!!! %| [Category Syntax] |% !!!!!!