A

p

e

r

s

o

n

a

l

B

l

o

g

Fortsetzung

Zuletzt habe ich die Addition von Dezimal- und Binärzahlen visuell gegenüber gestellt und gezeigt, dass beide male das gleiche Schema zur Anwendung kommt. Damit eine arithmetische Logikeinheit (ALU, a.k. Computer) mit dem binären Schema umgehen kann müssen sämtliche Rechenoperationen durch binäre Operatoren ausgedrückt werden. In dem Fall and, or und xor. Diese Operatoren können wiederum durch elektrische Schaltelemente umgesetzt werden.

Operatoren sind eine Abbildung von zwei binären Zahlen auf eine:

\begin{align}f: B\times B\to{B} = \{0, 1\},\\ \hbox{und }(d_1, d_2)\mapsto f(d_1, d_2),\nonumber\\ x, y_i, z_i, d_i\in B,\,\,i\in\mathbb{N}\nonumber\end{align}

Das genaue Verhalten für einen Operator $f$ ist in Logiktabellen aufgelistet. Wir benutzen:

\begin{align}\lfloor(y_i + x)/2\rfloor &\Leftrightarrow y_i \hbox{ and } x \\ y_i + x\,(\hbox{mod } 2) &\Leftrightarrow y_i \hbox{ xor } x\nonumber\\ (z_1 · z_2) + z_1 + z_2\,(\hbox{mod } 2) &\Leftrightarrow z_1 \hbox{ or } z_2\nonumber\end{align}

Bei der Addition von zwei Zahlen wird zunächst immer geprüft, ob es einen Übertrag in den nächst höheren Stellenwert gibt. Dieser Übertrag muss bei der Berechnung der Stelle ggf. immer hinzuaddiert werden. Dadurch kommt es zur Addition von drei Zahlen (vgl. hier). Operatoren wirken aber nur zwischen zwei Zahlen. Die Addition muss also gemäß Assoziativgesetz in zwei Rechenoperationen aufgeteilt werden, aber auch dann kann bei der Addition von zwei Zahlen ein Übertrag entstehen und dieser Übertrag muss bei der nächsten Addition von zwei Zahlen hinzuaddiert werden. So würde es immer weiter gehen. Der Trick ist: Bei dem Rechenschritt $y_i + d_1 + d_2$ entsteht maximal eine Zahl die immer noch kleiner ist als die doppelte Zahlenbasis (in dem Fall kleiner 4):

\begin{equation}max(y_i + d_1 + d_2) = 3 \lt 4\end{equation}

Es entsteht also maximal ein Übertrag. Bei der Addition von $d_1 + d_2$ oder $y_i + (d_1 \hbox{ und } d_2)$. Die Lösung ist also herauszufinden ob dieser Übertrag ggf. bei der ersten oder zweiten Addition entstanden ist. Und dafür wird der Operator or gebraucht.

Base 2