About
Boolean operator manipultes truthy and falsy values that can come from:
- a Boolean value
- the interpretation of a non-boolean value (ie javascript (truthy/falsy))
- or the result of a comparison expression.
Boolean operator has the same than arithmetic bitewise operator
Syntax
General syntax is
lhs operator rhs
where:
- lhs stands for left-hand side operand
- operator a boolean/logical operator
- rhs stands for right-hand side operand
Negation
Any Boolean expression (such as the outcome of a comparison operator may be negated with not.
Syntax example:
not(expression)
# or
!(expression)
Operator
Operator | Description | Logic |
---|---|---|
&& | Logical AND | If rhs is falsy, the expression evaluates to lhs |
|| | Logical OR | if lhs is truthy, the expression evaluates to lhs, otherwise, it evaluates to rhs |
& | Bitwise AND | |
| | Bitwise OR | |
^ | Bitwise exclusive OR |
&& and || exhibit short-circuiting“ behavior, which means that the second operand is evaluated only if needed
Computer
In computer, a logical operator is implemented by a logic gate
Order of precedence
Grammar - (Order of (operations|precedence)|operator precedence)
And and OR have normally lower priorities than comparison operators
Between them, not has the highest priority and or the lowest, so that:
A and not B or C
is equivalent to
(A and (not B)) or C
.
Illustration
And, Or and Xor seem incorrect.