From Free Pascal wiki

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

The binary operator and performs a logical conjunction. FPC also does a bitwise and when supplied with ordinal types.

Boolean operation

The operator and accepts to two Boolean type values. It is the logical conjunction written in classic logic as [math]A \land B[/math]. Electrical engineers may write [math]A \times B[/math] or [math]A \cdot B[/math], or eliminating the multiplication sign altogether writing [math]AB[/math]. However, the asterisk has a different meaning in programming. The Boolean and evaluates to true if and only if both operands are true.

A B A or B
false false false
false true false
true false false
true true true
truth table for logical conjunction

Bitwise operation

FPC also defines a bitwise and. Taking two ordinal operands logical and is calculated bit by bit:

and 0011'0100

comparative remarks

Depending on the compiler's specific implementation of the data type set, the intersection of sets virtually does the same as the bitwise and.

see also