Difference between revisions of "And"
(wikitable) |
(manually undo last changes by RfC1394: use categorization template {{and}} and fix syntax highlighting) |
||
(15 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{And}} | {{And}} | ||
− | = | + | The binary operator <syntaxhighlight lang="pascal" inline>and</syntaxhighlight> performs a logical conjunction. |
+ | [[FPC]] also does a bitwise <syntaxhighlight lang="pascal" inline>and</syntaxhighlight> when supplied with ordinal types. | ||
− | + | == Boolean operation == | |
+ | The operator <syntaxhighlight lang="pascal" inline>and</syntaxhighlight> 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 <syntaxhighlight lang="pascal" inline>and</syntaxhighlight> evaluates to [[false and true|<syntaxhighlight lang="pascal" inline>true</syntaxhighlight>]] if and only if both operands are <syntaxhighlight lang="pascal" inline>true</syntaxhighlight>. | ||
− | + | {| class="wikitable" style="text-align:center; margin:auto;" | |
− | + | ! <syntaxhighlight lang="pascal" inline>A</syntaxhighlight> | |
− | {| class="wikitable" | + | ! <syntaxhighlight lang="pascal" inline>B</syntaxhighlight> |
− | + | ! <syntaxhighlight lang="pascal" inline>A and B</syntaxhighlight> | |
− | ! A ! | ||
|- | |- | ||
− | | | + | | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> |
− | |style="background: #eeeeee" | | + | | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> |
+ | | style="background: #eeeeee" | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> | ||
|- | |- | ||
− | | | + | | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> |
− | |style="background: #eeeeee" | | + | | <syntaxhighlight lang="pascal" inline>true</syntaxhighlight> |
+ | | style="background: #eeeeee" | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> | ||
|- | |- | ||
− | | | + | | <syntaxhighlight lang="pascal" inline>true</syntaxhighlight> |
− | |style="background: #eeeeee" | | + | | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> |
+ | | style="background: #eeeeee" | <syntaxhighlight lang="pascal" inline>false</syntaxhighlight> | ||
|- | |- | ||
− | | | + | | <syntaxhighlight lang="pascal" inline>true</syntaxhighlight> |
− | |style="background: #eeeeee" | | + | | <syntaxhighlight lang="pascal" inline>true</syntaxhighlight> |
+ | | style="background: #eeeeee" | <syntaxhighlight lang="pascal" inline>true</syntaxhighlight> | ||
+ | |+ truth table for logical conjunction | ||
|} | |} | ||
+ | == Bitwise operation == | ||
+ | FPC also defines a bitwise <syntaxhighlight lang="pascal" inline>and</syntaxhighlight>. | ||
+ | Taking two ordinal operands logical <syntaxhighlight lang="pascal" inline>and</syntaxhighlight> is calculated bit by bit: | ||
+ | 1010'1100 | ||
+ | and 0011'0100 | ||
+ | ―――――――――――― | ||
+ | 0010'0100 | ||
− | = | + | == comparative remarks == |
− | + | Depending on the compiler's specific implementation of the data type [[Set|<syntaxhighlight lang="pascal" inline>set</syntaxhighlight>]], the [[Asterisk|intersection of sets]] virtually does the same as the bitwise <syntaxhighlight lang="pascal" inline>and</syntaxhighlight>. | |
− | |||
− | |||
− | |||
− | |||
− | <syntaxhighlight | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[ | + | == see also == |
+ | * [[Or|<syntaxhighlight lang="pascal" inline>or</syntaxhighlight>]] |
Latest revision as of 14:57, 27 November 2022
│
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]\displaystyle{ A \land B }[/math].
Electrical engineers may write [math]\displaystyle{ A \times B }[/math] or [math]\displaystyle{ A \cdot B }[/math], or eliminating the multiplication sign altogether writing [math]\displaystyle{ 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 and B
|
---|---|---|
false
|
false
|
false
|
false
|
true
|
false
|
true
|
false
|
false
|
true
|
true
|
true
|
Bitwise operation
FPC also defines a bitwise and
.
Taking two ordinal operands logical and
is calculated bit by bit:
1010'1100 and 0011'0100 ―――――――――――― 0010'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
.