Zahlen
Shortlinks
Dezimalsystem
Das Dezimalsystem ist das heutzutage normalerweise verwendete System. Dem System liegen die zehn Ziffern: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} zugrunde. Wenn diese Ziffern aneinander gereiht werden ergeben sie eine Zahl, die wie folgt gelesen werden muss. Die Zahl ist die Summe aus den Zehnerpotenzen {10n, 10n - 1, ..., 101, 100} mit den Ziffern als koeffizienten. Die Ziffer ganz links ist dabei der Koeffizient der höchsten Zehnerpotenz 10n bei einer n-stelligen Zahl und die Ziffer ganz links diejenige mit die tiefsten Zehnerpotenz 100 = 0.
Der Zahl 5131 wird also die Summe 5 * 103 + 1 * 102 + 3 * 101 + 1 * 100 = 5000 + 100 + 30 + 1 zugeordnet.
Binärsystem
In Computern wird das Binärsystem verwendet, da es dort sinnvoller ist nur zwischen zwei verschiedenen Zuständen unterscheiden zu müssen als zwischen zehn. Das Binärsystem ist auf den zwei Ziffern {0, 1} aufgebaut. Eine Binärzahl besteht also lediglich auch Nullen und Einsen. Die Zahl hat dabei den Wert der Summe aus den Zweierpotenzen {2n, 2n - 1, ... , 21, 20} mit den Ziffern als Koeffizienten. Wie beim Dezimalsystem wird wieder die erste Ziffer mit der höchsten Potenz multipliziert, die zweithöchste mit der zweithöchsten Potenz multipliziert bis zum letzten, der mit der niedrigsten Potenz 20 = 1 multipliziert wird. Die Anzahl stellen wird bei einer Binärzahl mit der Anzahl Bits (Ziffern) bezeichnet.
Die Zahl 10101101010 hat also den Wert 1 * 210 + 0 * 29 + 1 * 28 + 0 * 27 + 1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 1024 + 256 + 64 + 32 + 8 + 2 = 1386.
Hexadezimalsystem
Dem Hexadezimalsystem liegen die 16 Ziffern {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} zugrunde. Dabei haben die Buchstaben {A, B, C, D, E, F} die dezimalen Werte {10, 11, 12, 13, 14, 15}. In einer Hexadezimalzahl sind die Ziffern die Koeffizienten von Sechzehnerpotenzen{16n, 16n - 1, ..., 161, 160}, wie wir es auch bereits aus den anderen Zahlensystemen kennen.
Die Zahl 15F hat also den Wert 1 * 162 + 5 * 161 + F * 160 = 1 * 256 + 5 * 16 + 15 * 1 = 256 + 80 + 15 = 251.
Umwandlung Hexadezimal - Binär
Hexadezimalzahlen und Binärzahlen lassen sich besonders gut ineinander umwandeln. Dabei muss erkannt werden, dass jede Ziffer einer Hexadezimalzahl mit vier Binärziffern dargestellt werden kann. Falls es nicht aufgeht muss die Binärzahl noch linksseitig mit Nullenaufgefüllt werden.
Binärzahl (4 Bits) | Hexadezimal | Erklärung |
---|---|---|
0000 | 0 | Vier Nullen im Binärsystem bedeuten eine 0 im Hexadezimalsystem. |
1100 | C | Diese Binärzahl 8 + 4 = 12 wird im Hexadezimalsystem als C dargestellt. |
1111101 | 7D | Wenn die Zahl aufgefüllt wird, sodass die Anzahl Stellen durch vier teilbar wird erhalten wir 0111'1101. Die ersten vier Bits stellen dann die Zahl 7 dar und die restlichen Bits die 13, die mit D dargestellt wird. |
00101011 | 2B | |
1110101101 | 3CD | |
101'1101'0101'1010'1000'1010'1110 | 5D5'C8CE | Die ' dienen hier lediglich der Übersichtlichkeit. |
Umwandlungsaufgaben
Wandle die vorgegeben Zahlen in das jeweilige System um und fülle damit die leeren Felder aus. Schreibe dabei nur so viele Stellen wie benötigt werden.
Dezimal | Hexadezimal | Binär |
---|---|---|
Negative Zahlen: Das Zweierkomplement
Bis jetzt wissen wir lediglich wie wir natürliche Zahlen darstellen können. Um den darstellbaren Bereich auf die ganzen Zahlen zu erweitern brauchen wir aber auch noch die negativen Zahlen. Diese werden mit dem Zweierkomplement dargestellt. Dabei wird mindestens ein Bit mehr benötig, als in den natürlichen Zahlen benötigt werden würde um die Zahlen bis zu einer gewissen Zahl darstellen zu können (beispielsweise werden für die Zahlen von 0 bis 256 sieben Bits benötigt, hingegen von -255 bis 256 acht Bits). Das Zweierkomplement wird in zwei Schritten gebildet: Falls die Zahl negativ ist muss als erstes 1 subtrahiert werden. Als zweites werden alle Bits umgedreht(aus jeder 0 wird eine 1 und aus jeder 1 eine 0).
Dezimalzahl | Betrag Binärzahl | Betrag Binärzahl - 1 (10 Bit) | Binärzahl (10 Bit) |
---|---|---|---|
-25 | 11001 | 0000011000 | 1111100111 |
-19 | 10011 | 0000010010 | 1111101101 |
12 | 1100 | 0000001100 | 0000001100 |
-40 | 101000 | 0000100111 | 1111011000 |
Wie in der Tabelle zu erkennen ist wird mit einer positiven Zahl nichts gemacht. Dadurch können negative Zahlen daran erkannt werden, dass das erste Bit eine 1 ist. Um eine negative Binärzahl zu lesen kann das Zweierkomplement einfach erneut gebildet. Also zuerst 1 addieren und danach invertieren ergibt den Betrag der Zahl.
Aufgaben
Wandle die folgenden Zahlen in die verschiedenen Systeme um. Gib für die Dezimalzahlen und die Beträge binär so viele Stellen wie nötig an und die Binärzahlen auf 15 Stellen an.
Dezimal | Betrag binär | Binär |
---|---|---|
Reelle Zahlen: Fliesskomma
Reelle Zahlen werden völlig anders realisiert als Integer. Dafür wird die sogenannte Fliesskommazahl verwendet. Hier werden die Fliesskommazahlen im Format IEEE754 mit 32 Bits betrachtet.
Eine Fliesskommazahl besteht aus drei Teilen: Dem Vorzeichen (s für sign), dem Exponenten (e für exponent) und der Mantisse (m für mantissa). Von den 32 zur verfügung stehenden Bits werden eins für das Vorzeichen, acht für den Exponenten und 23 für die Mantisse verwendet.
Das Vorzeichen
Das erste Bit einer Fliesskommazahl ist das Vorzeichen. Ist es eine 0 so ist die Zahl positiv, ist es eine 1 so ist die Zahl negativ.
Der Exponent
Die Bits zwei bis neun stellen den Exponenten dar. Eine Fliesskommazahl muss immer zuerst in die Form s * 2e-B * 1.m gebracht werden. Dabei stellt B den sogenannten Exponent-Bias dar. Dieser wird gebraucht, sodass negative Exponenten dargestellt werden können ohne dass negative Zahlen codiert werden müssen. In unserem Format beträgt der Exponenten-Bias B = 127. Der zweite Teil 1.m zeigt uns an, dass die Zahl zwischen 1 und 2 liegen muss. Wir müssen sie also so lange mit zwei multiplizieren, respektive dividieren, bis sie im Intervall [1, 2] liegt. 127 + die Anzahl Multiplikationen, respektive minus die Anzahl Divisionen gibt dann den Exponenten an, der mit 8 Bits als natürliche Zahl kodiert wird.
Die Mantisse
Die Mantisse gibt die Nachkommastellen der Zahl s * 2e-B * 1.m an. Das 1.m bedeutet dabei, dass die Mantisse lediglich die Nachkommastellen nach der 1, also eine Zahl im Intervall [0, 1] darstellt. Sie besteht aus 23 Bits, die jeweils die Koeffizienten der Potenzen {2-1, 2-2, ..., 2-23} darstellen. 1001 in der Mantisse würde also 1 * 0.5 + 0 * 0.25 + 0 * 0.125 + 1 * 0.0675 = 0.5675 lauten. Zu dieser Zahl wird nun noch eine 1 addiert und sie wird mit dem Vorzeichen und der Zweierpotenz 2e-B multipliziert.
Ein Beispiel
In diesem Beispiel wird die Zahl -18.18525 als Fliesskommazahl dargestellt.
Operation | Auswirkung | Erklärung |
---|---|---|
-18.18525 = -1 * 18.18525 | s = 1 | Die Zahl ist negativ also beträgt das Vorzeichen 1 |
18.18525 = 1.17828125 * 24 | e = 127 + 4 = 13110 = 100000112 | Der Exponent ergibt sich aus dem Exponenten, den 2 erhält um unsere Zahl multipliziert mit einer Zahl in [1, 2] darzustellen addiert zu den Exponent-Bias = 127. |
1.17828125 - 1= 0.17828125 ≅ 0 * 2-1 + 0 * 2-2 + 1 * 2-3 + 0 * 2-4 + 1 * 2-5 | m = 00101 | Die Mantisse setzt sich aus den Koeffizienten der Zweierpotenzen zusammen. |
Denormalisierte Zahlen
Dank der oben aufgeführten Darstellung von reellen Zahlen werden betragsmässig kleine Zahlen genauer dargestellt als betragsmässig grosse Zahlen (auf mehr Nachkommastellen genau, deswegen auch Fliesskomma). Das Problem ist jedoch, dass keine Zahlen mit Betrag unter 2-126 dargestellt werden können. Deswegen werden die denormalisierten Zahlen definiert: Wenn der Exponent 25510 = 1111'11112 beträgt bedeutet dies NaN (not a nunber, z.B. unendlich) und die Mantissenbits können weitere Informationen enthalten. Wenn der Exponent 010 = 0000'00002 beträgt dann wird die Zahl nicht mehr als s * 2e-B * 1.m, sondern als s * 2e-B * 0.m interpretiert. Wenn die Mantisse nun nur aus Nullen besteht wird die Zahl 0 dargestellt.
Aufgaben zu den Fliesskommazahlen
Fülle die leeren Felder aus. Gib für den Exponenten jeweils 8 Bits und für die Mantisse die ersten 15 Bits an.
Dezimalzahl | Vorzeichen | Exponentbits | Mantisse |
---|---|---|---|