# Gatter
Gatter sind Hardware (Transistoren), welche binäre Daten verarbeiten können. (Binäre: 0en und 1en)
Diese werden üblicherweise als Boxen dargestellt.

## Rechenoperationen
### `AND`
```mermaid
graph LR;
    a["A"];
    b["B"];
    out["C"];
    and["&"];
    a --- and;
    b --- and;
    and --- out;
```

Ein `AND` (einige, verschiedene Notationen sind `AND`, `&` und $\wedge$) setzt voraus, dass die Eingabe-Werte (hier `A` und `B`) beide den Wert `true` beinhalten.

### NAND
```mermaid
graph LR;
    a["A"];
    b["B"];
    out["C"];
    and["&"];
    not((" "));
    a --- and;
    b --- and;
    and --- not --- out;
```

Ein `NAND` (kurz für "not and") ist die invertierte Version der [`AND`-Operation](#and). Dieser setzt voraus, dass eine der Eingabe-Werte (hier `A` und `B`) **nicht** `true` entsprechen.

Ein `NAND` lässt sich folgendermassen umformen:
$$C = \overline{A \wedge B}$$
$$C = \overline{A} \vee \overline{B}$$

## Vereinfachung
Für die Hardwaretechnik ist es jeweils effizienter, dieselben Operationen für alle Gatter zu verwenden.
Dies ist bei einer Vereinfachung zu berücksichtigen.
