Zahlensysteme

Die Babylonier verwendeten als eines der ersten Völker ein hybrides Positionssystem - der Wert eines Zeichens hängt auch von dessen Position ab. Während wir heute in unserem Dezimalsystem (Basis 1010) die Ziffern 0,1,2,,90, 1, 2, \dots, 9 verwenden, brauchten die Babylonier in ihrem Sechzigersystem 5959 Ziffern; ein Zeichen für die Null gab es damals noch nicht.

Das Positionssystem

In einem Positionssystem bestimmt die Stelle (Position) den Wert der jeweiligen Ziffer - die "niederwertigste" Position steht dabei ganz rechts. So ein Stellenwertsystem hat eine Basis bb. Jede Zifferposition hat einen Wert, der einer Potenz der Basis entspricht.

Die Berechnung des Zahlenwertes znzn1z0z_nz_{n-1}\dots z_0 erfolgt durch Multiplikation der einzelnen Ziffern ziz_i mit den zugehörigen Stellenwerten bib_i und Addition dieser Produkte:

Zahlenwert=znbn++zibi++z0b0.\text{Zahlenwert} = z_n\cdot b^n+\dots+z_i\cdot b^i+\dots+z_0\cdot b^0.
Example 1

Unter der Zahl 12571257 im üblichen Dezimalsystem (d.h. zur Basis 1010) verstehen wir den Wert

1103+2102+5101+7100=1257.1\cdot10^3+2\cdot10^2+5\cdot10^1+7\cdot10^0 = 1257.

Mit der Beschränkung des niedrigsten Exponenten auf 00 kann man nur ganze Zahlen darstellen. Lässt man auch negative Exponenten zu, kann man auch rationale Zahlen in einem Stellenwertsystem schreiben. Dabei wird der Übergang vom nichtnegativen zum negativen Exponenten durch ein Trennzeichen markiert, beispielsweise einem Punkt:

1102+2101+1100+4101+7102=121.471\cdot10^2+2\cdot10^1+1\cdot10^0+4\cdot10^{-1}+7\cdot10^{-2} = 121.47

(Das Positionssystem kommentiert)

Exercise 1: Binärzahlen

Die Idee des Positionssystems mit einer bestimmten Basis wird auch beim Binärsystem (Basis 22) verwendet. Die binäre Zahl 10111011 entspricht der Dezimalzahl

123+022+121+120=8+2+1=11.1\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0 = 8+2+1 = 11.

Stelle die Dezimalzahlen von 11 bis 2020 im Binärsystem dar. Beschreibe dein Vorgehen.

Solution
BIN DEC BIN DEC
0001 1 1011 11
0010 2 1100 12
0011 3 1101 13
0100 4 1110 14
0101 5 1111 15
0110 6 10000 16
0111 7 10001 17
1000 8 10010 18
1001 9 10011 19
1010 10 10100 20
Exercise 2: bin zu dec

Verwandle folgende Binärzahlen in Dezimalzahlen

11111111111\quad\quad11\quad\quad111\quad\quad1111\quad\quad\dots

und

1010010001000010\quad\quad100\quad\quad1000\quad\quad10000\quad\quad\dots
Solution

a) 11, 33, 77, 1515, 2k12^{k}-1

b) 22, 44, 88, 1616, 2k2^k

Exercise 3: Binär

Finde für die Dezimalzahl 3434 die Binärschreibweise.

Solution

Ich gucke, welche Zweierpotenz noch Platz hat und fahre dann mit dem Rest analog fort. Man kann auch stetig durch zwei Teilen und am Ende die Binärzahl rückwärts zusammensetzen. 34=25+21=100010(2)34 = 2^5+2^1 = 100010_{(2)}

Das Binärsystem

Wie könnte eine Codierung von Zeichen im Computer realisiert werden? Der Computer arbeitet mit elektrischem Strom. Das heisst er kann lediglich die beiden Zustände "Strom an" und "Strom aus" unterscheiden. Man codiert 11 für den ersten und 00 für den zweiten Zustand. Die Information, die durch den Strom in einer Leitung codiert ist, heisst ein Bit (binary digit). So lassen sich bloss zwei Zeichen codieren. Kombiniert man aber zwei Leitungen, lassen sich nun vier Zustände unterscheiden:

Leitung 1 Leitung 2
0 0
0 1
1 0
1 1
Exercise 4: Leitungen

Stelle eine Tabelle für drei Leitungen auf.

Solution
Leitung 1 Leitung 2 Leitung 3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Exercise 5: Ein Byte

Wie viele Leitungen braucht man, um alle Buchstaben des Alphabets codieren zu können?

Solution

Für das Alphabet mit 26 Buchstaben braucht man mindestens 55 Leitungen, da 24=162^4 = 16 und 25=322^5 = 32. Als Standardgrösse hat sich ein Byte, 28=2562^8 = 256 Zustände, etabliert.

In der Informatik ist es üblich, acht Leitungen zur Speicherung von Informationen zusammenzufassen. Insgesamt lassen sich damit 28=2562^8 = 256 verschiedene Zeichen darstellen. Man spricht bei dieser Bündelung von acht Leitungen vom Informationsgehalt ein Byte.

Note 1

Früher rechnete man noch in Kilobyte, was ca. 1000 Bytes entspricht. Kilo wurde in diesem Zusammenhang nicht wie üblich für den Wert Tausend verwendet, sondern für 210=102410002^{10} = 1024\approx1000. Deshalb ist zum Beispiel ein Megabyte = 1024 Kilobyte.

Addieren im Binärsystem

Die Addition von Binärzahlen funktioniert prinzipiell genau so, wie die Addition von Dezimalzahlen.

Exercise 6: Binär schriftlich addieren

Addiere schriftlich die Binärzahlen 10010111001011 und 101011101011.

Solution1001001+011010111110100\begin{align*} 1001001 &\\ +\phantom{01}101011 &\\ \hline 1110100& \end{align*}

Werden mehrere Binärzahlen addiert, kann der Übertrag natürlich auch grösser als 11 werden.

Exercise 7: Binär schriftlich addieren II

Addiere schriftlich die Binärzahlen 10010111001011, 101011101011 und 101010101010.

Solution1001011+01101011+0110101010100000\begin{align*} 1001011 &\\ +\phantom{01}101011 &\\ +\phantom{01}101010 &\\ \hline 10100000 \end{align*}

Negative Zahlen

Schauen wir vierstellige Binärzahlen, sogenannte Nibbles, an. Insgesamt können mit einem Nibble 1616 verschiedene Zahlen dargestellt werden. Was passiert nun bei fortlaufender Addition von 11 ausgehend von der Zahl 00?

0+11+12+1+114+115+1???0\overset{+1}{\longrightarrow}1\overset{+1}{\longrightarrow}2\overset{+1}{\longrightarrow}\dots\overset{+1}{\longrightarrow}14\overset{+1}{\longrightarrow}15\overset{+1}{\longrightarrow}???

Wir können diese Additionskette als Zyklus auffassen, wenn wir die binäre Vierstelligkeit nicht verlassen wollen. Addieren wir nun zur Zahl 1111(2)1111_{(2)} die 11, so erhalten wir (1)0000(2)(1)0000_{(2)}, also die Zahl 00 mit einem Überlauf. Wenn Addieren gleichzusetzen mit um eins im Uhrzeigersinn verschieben ist, dann sollte man Subtrahieren mit der Umkehrung definieren.

Genau diesen Zusammenhang kann man zur Berechnung der Darstellung einer negativen Zahl im Binärsystem verwenden:

Example 2

Wir betrachten die Zahl 23=00010111(2)23 = 00010111_{(2)}. Durch Kippen erhält man 1110100011101000. 11 addieren bringt 11101001=2311101001 = -23.

Exercise 8: Negative Binärzahlen

Welche Binärzahl repräsentiert 7(10)-7_{(10)}? Addiere 7(10)+7(10)-7_{(10)}+7_{(10)}.

Solution

7=1001(2)-7 = 1001_{(2)} und 7=0111(2)7 = 0111_{(2)}.

01001+00111(1)0000\begin{align*} \phantom{0}1001 &\\ +\phantom{0}0111 &\\ \hline (1)0000 \end{align*}

Die Frage, die bleibt, ist: Welcher Zahl entspricht die 1000(2)1000_{(2)}? Es könnte 8-8 oder +8+8 bedeuten. Man löst dieses Dilemma, indem man einfach ein Vorzeichenbit einführt. Somit können wir also mit einem Nibble die Zahlen 8-8 bis 77 darstellen.

Wir sind nun in der Lage, die Subtraktion im Binärsystem zu lösen, indem wir sie auf die Addition zurückführen.

12719=127+(19)=01111111(2)+11101101(2)=(1)01101100(2)=108\begin{align*} 127-19& = 127+(-19)\\ & = 0111\,1111_{(2)} + 1110\,1101_{(2)}\\ & = (1)0110\,1100_{(2)}\\ & = 108 \end{align*}
Exercise 9: Binär subtrahieren

Prüfe durch Rechnung obiges Beispiel. Berechne danach im Binärsystem 11548115-48.

Solution

0111001100110000=01110011+11010000=(1)0100001101110011-00110000 = 01110011+11010000 = (1)01000011

Multiplizieren im Binärsystem

Neben der Addition und Subtraktion von Binärzahlen spielt die Multiplikation von Binärzahlen eine wesentliche Rolle. Wir kennen ein Verfahren in den Dezimalzahlen, welches wir direkt auf das Binärsystem anwenden können. Jedoch liegt dabei der Schwerpunkt auf dem Addieren, wie das folgende Beispiel zeigt.

Example 3

Wir berechnen das Produkt von 00001001(2)0000\,1001_{(2)} und 00100111(2)0010\,0111_{(2)}. Dezimal erhalten wir 923=2079\cdot23 = 207.

Exercise 10: Binär schriftlich multiplizieren

Berechne 9239\cdot23 binär.

Solution
0 0 0 0 1 0 0 1 \cdot 0 0 0 1 0 1 1 1
0 0 0 1 0 1 1 1
0 0 0 1 0 1 1 1 0 0 0
1 1 0 0 1 1 1 1

Bei der Multiplikation entstehen so bis zu acht Summanden, die anschliessend addiert werden müssen, dagegen ist die Multiplikation als solches sehr einfach. Ferner sieht man nun im Ergebnis zwei Bytes aneinander gereiht. Dabei haben wir Glück und das zweite Byte bleibt mit Nullen gefüllt, so dass unser Resultat wieder in ein Byte hinein passt. Es könnte ja auch sein, dass das vordere Byte benötigt wird, nämlich dann, wenn das Ergebnis grösser als 255255 ist.

Hexadezimalsystem

In der Informatik verwendet man manchmal statt des Binärsystems das 16er-System (Hexadezimalsystem). Dadurch können Werte übersichtlicher geschrieben werden und die Umrechnung ist wegen 16=2416=2^4 sehr einfach. Man braucht nun 1616 Ziffern und schreibt

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Example 4
Example 5

Das Zeichen 🧩 lautet in HTML-Code 🧩.

Exercise 11: Hex zu Dec und Bin

Welche Werte hat 1A(16)1A_{(16)} und ABC(16)ABC_{(16)} dezimal bzw. binär?

Solution

Es ist 1A(16)=261A_{(16)}=26, binär ist das 11010(2)11010_{(2)}. ABC(16)=2748ABC_{(16)}=2748. Für die Binärdarstellung schreibe ich direkt 4er-Pakete um: ABC(16)=101010111100(2)ABC_{(16)}=101010111100_{(2)}.

Exercise 12: Dec zu Hex

Notiere die Dezimalzahl 100100 im Hexadezimalsystem.

Solution

Die Umrechnung ergibt sich aus 100=616+4=64(16)100=6\cdot16+4=64_{(16)}.

Exercise 13: Hex zu Dec II

Welchen Wert haben folgende Hexadezimalzahlen im Dezimalsystem?

a) 10(16)10_{(16)}

b) A(16)A_{(16)}

c) 1A(16)1A_{(16)}

d) DEF(16)DEF_{(16)}

Solution

a) 1616

b) 1010

c) 2626

d) 35673567

Exercise 14: Dec zu Hex II

Schreibe folgende Dezimalzahlen im Hexadezimalsystem:

a) 1010

b) 100100

c) 1616

d) 257257

Solution

a) Die 1010 entspricht dem Hexadezimalsymbol AA, also A(16)A_{(16)}.

b) 64(16)64_{(16)}

c) 10(16)10_{(16)}

d) 101(16)101_{(16)}

Exercise 15: Der direkte Draht

Da 16=2416=2^{4} ist, entspricht jede Hexadezimalziffer genau einem 4er-Block von Binärziffern. Wandle folgende Zahlen direkt um: a) 11100101211100101_{2} in eine Hexadezimalzahl. b) A7F16A7F_{16} in eine Binärzahl.

Solution

a) 111001012E51611100101_{2} \rightarrow E5_{16} b) A7F161010011111112A7F_{16} \rightarrow 101001111111_{2}

Exercise 16: Binäre Addition

Addiere die folgenden Binärzahlen schriftlich, wie du es vom Dezimalsystem gewohnt bist. Beachte die Überträge (z.B. 12+12=1021_{2} + 1_{2} = 10_{2}). a) 1012+102101_{2} + 10_{2} b) 11102+101121110_{2} + 1011_{2}

Solution

a) 1112111_{2} (Dezimal: 5+2=7) b) 11001211001_{2} (Dezimal: 14+11=25)

Exercise 17: Die Macht der Null

Erkläre in deinen eigenen Worten, warum die Erfindung der Null für Stellenwertsysteme so entscheidend war. Welches konkrete Problem hatten die Babylonier ohne sie?

Solution

Die Null dient als Platzhalter. Ohne sie kann man in einem Positionssystem nicht zwischen Werten wie 2, 20 und 200 unterscheiden. Die Babylonier konnten z.B. 61 (1,1601,1_{60}) nicht eindeutig von 3601 (1,0,1601,0,1_{60}) unterscheiden, was zu Missverständnissen führen konnte.

Exercise 18: Farben im Web

Farben am Computer werden oft als Hexadezimal-Code im RGB-Format (Rot, Grün, Blau) angegeben. Der Code #FF8800 steht für eine Farbe. Die ersten beiden Stellen (FF) geben den Rotwert an, die nächsten beiden (88) den Grünwert und die letzten beiden (00) den Blauwert. Rechne die drei Farbwerte ins Dezimalsystem um (Wertebereich 0−255).

Solution

Rot: FF16=15161+15160=240+15=255FF_{16} = 15 \cdot 16^{1} + 15 \cdot 16^{0} = 240+15=255 Grün: 8816=8161+8160=128+8=13688_{16} = 8 \cdot 16^{1} + 8 \cdot 16^{0} = 128+8=136 Blau: 0016=000_{16} = 0

Das Sexagesimalsystem

Das babylonische Zahlensystem ist ein Stellenwertsystem zur Basis 60, mit dem beliebig grosse, aber auch beliebig kleine Zahlen systematisch dargestellt werden können. Die Babylonier benutzten eine Keilschrift. Da pro "Stelle" 60 Ziffern verwendet werden können, nennt man dieses Zahlensystem auch Sexagesimalsystem.

Interessant ist auch, dass die Babylonier ihr Stellenwertsystem auch für Nachkommazahlen nutzten. Dabei kam ihnen die vielfältige Teilbarkeit der Zahl 60 zugute - dies war vermutlich auch der Grund, weshalb das Sexagesimalsystem überhaupt eingeführt wurde. Ein Zeichen für den "Punkt" war nicht vorhanden, so dass die Zuordnung der Stellen zu den 60er-Potenzen nicht eindeutig war. Welche Position z.B. die 60060^{0}-Stelle hat, musste aus dem Kontext erraten werden.

Eine genaue Untersuchung des Objekts fördert folgendes Schriftbild zutage. Wir erhalten so für die erste Zeile

1600+24601+51602+106031 \cdot 60^{0} + 24 \cdot 60^{-1} + 51 \cdot 60^{-2} + 10 \cdot 60^{-3}
Exercise 19: 🧩

Welche Zahl wird hier beschrieben?

Solution

Es ist 1600+24601+51602+10603=1.414212961 \cdot 60^{0} + 24 \cdot 60^{-1} + 51 \cdot 60^{-2} + 10 \cdot 60^{-3} = 1.41421_{296}, was nahe bei 21.414213\sqrt{2} \approx 1.414213\ldots ist.

Alte Einheiten

Früher waren noch Einheiten wie das Dutzend und, wie eben bei den Babyloniern gesehen, 60er Einheiten gebräuchlich. Folgende Tabelle, in der die Anzahl Teiler der ersten 100 Dezimalzahlen aufgelistet sind, kann einen Hinweis liefern, wieso gerade 12 und 60 als Basen so beliebt waren.