Tests if two conditions are both true.

Can also be used as a bitwise "and" on integers.

*condition1* and *condition2*

*integer1* and *integer2*

**Menu Location**

- Press 2nd MATH to enter the MATH popup menu.
- Press 8 to enter the Test submenu.
- Press 8 to select and.

This command works on all calculators.

1 byte

The `and` operator combines two conditions into one, which will be true if both sides are true, and false otherwise. You can create these conditions with the relational operators =, ≠, >, ≥, <, and ≤, with functions such as isPrime(), pxlTest(), and ptTest(), or with any other expression that returns 'true' or 'false'. Other operators for dealing with conditions are or, xor, and not.

```
:2+2=4 and 1=0
false
:2+2=4 and 1+1=2
true
```

The operator can also be applied to integers, treating them as 32-bit signed integers (larger integers will be truncated to fit) expressed in binary. The bits will be matched up, and "and" will be applied to the bits individually — a bit in the result will be 1 if the two corresponding bits of the original integers were 1, and 0 otherwise.

```
:(0b11111100 and 0b00111111)▶Bin
0b111100
:1000 and 512
512
```

In complicated logical expressions (both with conditions and with integers), `and` has greater priority than the others ("or" and "xor"). For instance:

`X or Y and Z`

will be interpreted as:

`X or (Y and Z)`

# Error Conditions

**60 - Argument must be a Boolean expression or integer** happens when the data type is incorrect (or mismatched).