Often we have to compare different expressions or variables. Boolean variables only have 2 values, true and false or 1 and 0 (1 corresponds to true, 0 corresponds to false).
Bitwise operations:
AND, * (logic product)
0 * 0 = 0
1 * 0 = 0
0 * 1 = 0
1 * 1 = 1
OR, + (logic sum)
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 1
NOT, ! (logic negation)
!0 = 1
!1 = 0
XOR, ⊕ or ^
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
XNOR, ⊙ (opposite of ⊕)
0 ⊙ 0 = 1
1 ⊙ 0 = 0
0 ⊙ 1 = 0
1 ⊙ 1 = 1
Order of Precedence: () > ! > * > ⊕ = ⊙ > +
Boolean Expressions:
== equal to
!= not equal to
< less than
> greater than
<= less than or equal to
>= greater than or equal to
Logical Operators:
! Logical NOT
&& Logical AND
a&&b is true only if both a and b are true
|| Logical OR
a||b is true if a or b or both are true
Comparison:
char types are compared by ACSII values
Strings are compared by ACSII values of each character from left to right
When paring two double or float values, we often compare the difference with a small enough value because of round off errors
A boolean variable x == true is the same as x
Selected Operators and their Precedence:
[] Array element access
++, --, ! Increment, decrement, Boolean not
*, /, % Multiplication, division, remainder
+, - Addition, subtraction
<, <=, >, >= Comparisons
==, != Equal, not equal
&& Boolean and
|| Boolean or
= Assignment
If x is an int variable with value 5 and y is an int variable with value 5, what is the value of the expression !(x > y)?
Answer: True