# Programming Tutorials

## Boolean Logical Operators

By: aathishankaran in Java Tutorials on 2007-02-07

The boolean logical operators shown here operate only on boolean operands. All of the binary logical operators combine two boolean values to form a resultant boolean value.

```&	Logical AND
|	Logical OR
^	Logical XOR
||	Short-circuit OR
&&	Short-circuit AND
!	Logical unary NOT
&=	AND assignment
|=	OR assignment
^=	XOR assignment
==	Equal to
!=	Not equal to
?:	Ternary if-then-else```

The logical Boolean operators, &, |, and ^, operate on boolean values in the same way that they operate on the bits of an integer. The logical ! operator inverts the boolean state: !true == false and !false==true. The following table shows the effect of each logical operation:

```A	B	A | B	A & B	A ^ B	! A
False	False	False	False	False	True
True	False	True	False	True	False
False	True	True	False	True	True
True	True	True	True	False	False```

Here is a program that is almost the same as the BitLogic example shown earlier, but it operates on boolean logical values instead of binary bits:

```//Demonstrate the boolean logical

class BoolLogic {

public static void main(String args[]) {

boolean a = true;
boolean b = false;
boolean c = a | b;
boolean d = a & b;
boolean e = a ^ b;
boolean f = (!a & b) | (a & !b);
boolean g = !a;

System.out.println("a = " +a);
System.out.println("b = " +b);
System.out.println("a|b = " +c);
System.out.println("a&b = " +d);
System.out.println("a^b = " +e);
System.out.println("!a&b|a&!b = " +f);
System.out.println("!a = " +g);
}
}```

After running this program, you will see that the same logical rules apply to bollean values as they did to bits. As you can see from the following output, the string representation of a java boolean value is one of the literal values true or false:

`a = trueb = falsea|b = falsea&b = falsea^b = true!a&b|a&!b = true!a = false`