Eine sehr kurze Einführung in die digitale Welt
Keine Sorge, in späteren Texten wird es schon ein wenig komplizierter.
Zahlensysteme
Im täglichen Leben wird heute so gut wie alles im Dezimalsystem dargestellt.
Warum?
Weil wir zehn Finger haben und damit eine Zählhilfe.
Hätten wir zwölf Finger würden wir wahrscheinlich zwölf Zahlzeichen haben.
Micky Maus und seine Comickollegen können nur bis acht mit ihren Fingern zählen.
Die Römer würden heute kein Geschäft mehr machen, weil sie nicht schnell genug rechnen könnten.
z.B. MCMXII + CMDIXIV = ???
Egal welches System man wählt, man kann jede Zahl wie folgt darstellen: $$a~\times~B^n $$ $$a~\in~{0..n}$$
Wobei B die Zahlenbasis ist und a ein Zahlzeichen aus der Zahlzeichenmenge ist.
Für das Dezimalsystem ist \(B=10\) und \(a~\in~{0,1,2,3,4,5,6,7,8,9}\).
Ohne die indische Null wäre ein Dezimal- oder Welche_Basis_auch_immer-system gar nicht möglich.
Einige Beispiele
Das aktuelle Jahr aufgedröselt im Dezimalsystem:
2025 => 2 Tausender, 0 Hunderter, 2 Zehner, 5 Einer
als Formel: $$2025~=~2\times 10^3~+~0\times 10^2~+~2\times 10^1~+~5\times 10⁰ $$
Binärsystem: $$a~\in~{0,1}~ und ~B = 2$$
Hier mal von binär nach decimal für ein Byte: $$10100101~=~1\times 2^7~+~0\times 2^6~+~1\times 2^5~+~0\times 2^4~
+~0\times 2^3~+~1\times 2^2~+~0\times 2^1~+~1\times 2^0 $$ $$10100101 = 128 + 0 + 32 + 0 + 0 + 4 + 0 + 1 = 165$$
Hexadecimal: $$a~\in~{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}~ und ~B = 16$$
Wenn man dann das vorherige Byte in zwei Halbbytes (nibbles) teilt, kann jedes nibble als Hex-Zahl geschrieben werden.
Menschlich lesbar übersetzt: $$10100101 = A5 = A \times 16^1~+~5 \times 16^0 = 160 + 5 = 165$$
Bei heute verfügbaren 64-Bit Processoren würden 64 mal 0 oder 1 geschrieben werden müssen, mit Hexzahlen für 8 Bytes nur 16 Hexzahlen.
Also haben mal wieder die Schreibfaulen zugeschlagen. 😉
Bei Sonderfällen wie IP-Adressen und -Masken werden die Bytes dezimal dargestellt, wobei ich auch hier Hexzahlen bevorzugen würde, aber eben nur ich und nicht der Rest der Welt. 🙁
Beispiel: $$255.255.255.0 = FF~FF~FF~00$$ $$192.168.0.128 = C0~A8~00~80 = 11000000 ~10101000 ~00000000~ 10000000$$
Ich gehe mal davon aus, das Du dies alles natürlich weißt, und Du Dich langweilst.
Ich konnte es einfach nicht lassen, mit meinem Wissen anzugeben.
Und hier noch die Frage, die ich üblicherweise Mathe-Cracks stelle, und die
viele nicht beantworten können.
Warum ist 160 = 1 ?
Antwort, ich will Dich ja nicht dumm sterben lassen:
Wie kann eine Rechnung 0 ergeben?
Indem man zwei gleiche Zahlen voneinander abzieht: $$ 5 – 5 = 0$$
Und damit kann man herleiten: $$ 16^0 = 16^{1-1}= {16^1 \over 16^1}= 1$$
Ganz einfach wenn man weiß wie.
Wie schaffe ich jetzt den Übergang zu digitaler Schaltungstechnik?
Indem ich mal wieder alte Männer zitiere. Und wen?
Die Herren Boole und DeMorgan.
Ada Lovelace als Programmiererin des Babbage Rechners sollte in diesem Zusammenhang selbstverstänclich auch genannt werden.
Die genannten Herren haben sich mit Rechenmethoden rund um die binären Zahlen beschäftigt.
In der zweiten Hälfte des letzten Jahrhunderts wurden dann Schüler und mehr noch ihre Eltern mit Mengenlehre und Mengen verstört, die nach ähnlichen Regeln verarbeitet werden.
Auf jeden Fall kann die digitale Welt auf drei Grundzusammenhänge reduziert werden:
NEGATION $$
\begin{array}
{ c | c }
A & {C = \neg A }\\
\hline
0 & 1 \\
1 & 0 \\
\end{array}
$$
UND / AND $$
\begin{array}
{ c c | c }
B & A & C\\
\hline
0 & 0 & 0 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 1\\
\end{array}
$$
ODER / OR $$
\begin{array}
{ c c | c }
B & A & C\\
\hline
0 & 0 & 0 \\
0 & 1 & 1 \\
1 & 0 & 1 \\
1 & 1 & 1\\
\end{array}
$$
Neben diesen drei Grundfunktionen noch drei weitere, die im Zusammenhang mit verwendeten Technologien wichtig sind, speziell ihr Verzögerungsverhalten (Durchlaufzeiten).
NAND $$
\begin{array}
{ c c | c }
B & A & C\\
\hline
0 & 0 & 1 \\
0 & 1 & 1 \\
1 & 0 & 1 \\
1 & 1 & 0\\
\end{array}
$$
NOR $$
\begin{array}
{ c c | c }
B & A & C\\
\hline
0 & 0 & 1 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 0\
\end{array}
$$
XOR $$
\begin{array}
{ c c | c }
B & A & C\\
\hline
0 & 0 & 0 \\
0 & 1 & 1 \\
1 & 0 & 1 \\
1 & 1 & 0\\
\end{array}
$$
EineTabelle mit allen 16 Möglichkeiten für C bei zwei Variablen A und B, wobei nicht alle technisch sinnvoll sind. $$
\begin{array}
{ c | c | c| c | c }
1 & 1 & 0 & 0 & B \\
1 & 0 & 1& 0 & A \\
\hline
0 & 0 & 0 & 0 & never \\
0 & 0 & 0 & 1 & NOR \\
0 & 0 & 1 & 0 & -\\
0 & 0 & 1 & 1 & \neg B \\
0 & 1 & 0 & 0 & – \\
0 & 1 & 0 & 1 & \neg A \\
0 & 1 & 1 & 0 & XOR \\
0 & 1 & 1 & 1 & NAND \\
1 & 0 & 0 & 0 & AND \\
1 & 0 & 0 & 1 & XNOR \\
1 & 0 & 1 & 0 & A \\
1 & 0 & 1 & 1 & – \\
1 & 1 & 0 & 0 & B \\
1 & 1 & 0 & 1 & NOR \\
1 & 1 & 1 & 0 & OR\\
1 & 1 & 1 & 1 & always \\
\end{array}
$$
Wie kommen jetzt die Herren Boole und DeMorgan zusammen?
In der Vergangenheit (im letzten Jahrhundert) war eine der vorherrschenden Technologien die TTL Technik.
Zu dieser Zeit war der Integrationsgrad auf dem Silizium noch sehr gering.
Man war also froh, um jeden eingesparten Transistor auf der Fläche.
Die gängigsten Bausteine waren das NAND, NOR und der Inverter.
Daraus ergab sich die Notwendigkeit mit diesen Funktionen auch ein AND und ein OR zu erstellen.
Bedienen wir uns doch nun der etwas „moderneren“ Form von digitalen Gleichungen.
Das NAND als Formel:
$$ \overline {A • B} = C$$
In Worten für das NAND:
Wenn A und B wahr sind dann ist C nicht wahr.
Oder anders betrachtet:
Wenn A nicht wahr ist oder auch B nicht wahr ist dann ist C wahr.
Und für das NOR:
Wenn A oder B wahr sind dann ist C nicht wahr oder wenn A nicht wahr ist und auch B nicht wahr ist dann ist C wahr.
Als Formeln:
$$ \overline {A • B} = C = \overline A + \overline B$$
$$ \overline {A + B} = C = \overline A • \overline B$$
Um diesen Zusammenhang anschaulicher zu machen werde ich Symbole benutzen, die früher auch zum erstellen von Schaltplänen benutzt werden.
Ich werde die sogenannte Semmellogik nutzen, da die für mich einfach anschaulicher ist.
(Die genormten Kästchen wurden seinerzeit ja nur deswegen eingeführt, weil Drucker keine Bögen drucken konnten.)
Wie sind die Symbole zu verstehen?
Linien von der Eingangs- zur Ausgangsseite stellen ein OR da.
Die kleinen Kreise stehen für die Negation, entweder am Eingang oder am Ausgang.
Wird also eine Verbindung von einem negierten Ausgang zu einem negierten Eingang hergestellt, hebt sich die Negation auf.
(Könnte glatt in Bayern erfunden worden sein, die doppelte Negation: “nia ned” als positive Ablehnung.)
Was fehlt ist noch das XOR.
Dieser Logikbaustein wird benötigt, um in der binären Welt rechnen zu können.
In diesem nächsten Bild wird aus einem XOR und einem AND ein Addierer.
Der liefert für eine Binärstelle NULL wenn A und B NULL sind, und EINS wenn A oder B EINS ist.
Sind beide, A und B, EINS gibt es einen Übertrag (carry) auf die nächst höhere Binärstelle.
Jetzt noch ein Bild für eine Verarbeitungsstufe die auch den Übertrag (carry in) der zu ihr niedrigern Stelle verarbeitet.
Sogenannte Volladdierer berücksichtigen dann auch den Übertrag der vorherigen Binärstelle.
Durch hintereinanderschalten von vielen dieser Volladdierer bekommt man Rechenwerke für 64 Bits.
Der Volladdierer kann auch subtrahieren, indem eine negative Binärzahl addiert wird.
Und Multiplizieren wird durch wiederholtes addieren realisiert, dividieren durch wiederholtes subtrahieren.
Der Nachteil dieser Technik war die serielle Verarbeitung des Überträge. Auch wenn die Verzögerung im Nanosekundenbereich lag (\(10^-9\)Seekunden), summierten sie sich bei 64 Bits zu nicht gewünschten Werten.
Natürlich wurde mit Hilfe der binären Mathematik eine Lösung gefunden, die sich jeder selbst errechnen kann. (Spoiler: Hat schon jemand gemacht. 🙂 )
Das ist alles was Computer besser macht als den Menschen.
Äußerst primitiv, aber sauschnell.
Und solange alles auf dieser Technik beruht wird es sehr lange dauern bis starke Computerintelligenz erreicht wird.
Was heute als „Artificial Intelligence“ bezeichnet wird, ist nichts anderes als selbstadaptierende Algorithmen!
Das gab es schon mal als Schlagwort. Damals hieß das „Fuzzy Logik“.
Mit riesigen Datenmengen in riesigen Datenspeichern mit einem gigantischen Energieverbrauch.
Und woher kommen diese Daten?
Von allen Menschen dieser Welt die irgendwann mal irgendwo das Internet berühren.
Sei es per Webbrowser oder beim Hochladen eines Bildes in die „cloud“ oder kommentieren eines „chats“, „posts“.
Wir bezahlen mit unseren Daten dafür, dass wir kostenlos Programme wie Suchmaschinen benutzen dürfen.
Bargeld wäre mir lieber.