Zahlen können beliebig in verschiedenen Zahlensystemen dargestellt werden. Zur Umrechnung gibt es einen speziellen Algorithmus
Integers
Positive Ganzzahlen
Im Binärsystem werden die positiven Ganzzahlen simpel dargestellt. Jede Ziffer einer Binärzahl hat den Wert oder .
Jede Stelle stellt eine andere Zweierpotenz dar, die Ziffer an dieser Stelle beschreibt jeweils wie oft diese Potenz addiert werden muss um die codierte Zahl zu berechnen.
Die Zahl wird in Binär dargestellt als
| 1 | 0 | 1 | 1 |
| Da |
Nach dem selben Prinzip lässt sich jede beliebige Zahl als Basis eines Zahlensystems verwenden.
Negative Zahlen
Binärzahlen sollen so codiert werden, dass kein zusätzliches Vorzeichen notwendig ist um negative Zahlen zu unterscheiden.
Es werden 3 intuitive Varianten verglichen um den heute geläufigen Standard herzuleiten.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 0 | 1 | 0 | 2 | 2 | 2 |
| 0 | 0 | 1 | 1 | 3 | 3 | 3 |
| 0 | 1 | 0 | 0 | 4 | 4 | 4 |
| 0 | 1 | 0 | 1 | 5 | 5 | 5 |
| 0 | 1 | 1 | 0 | 6 | 6 | 6 |
| 0 | 1 | 1 | 1 | 7 | 7 | 7 |
| 1 | 0 | 0 | 0 | -0 | -7 | -8 |
| 1 | 0 | 0 | 1 | -1 | -6 | -7 |
| 1 | 0 | 1 | 0 | -2 | -5 | -6 |
| 1 | 0 | 1 | 1 | -3 | -4 | -5 |
| 1 | 1 | 0 | 0 | -4 | -3 | -4 |
| 1 | 1 | 0 | 1 | -5 | -2 | -3 |
| 1 | 1 | 1 | 0 | -6 | -1 | -2 |
| 1 | 1 | 1 | 1 | -7 | -0 | -1 |
| Alle Codierungen verwenden das MSB als Vorzeichenbit. Dabei gilt und |
Verwendet für alle Zahlen die selbe Codierung, so entsteht eine zweite und Schwierigkeiten bei Berechnungen mit den negativen Zahlen. Möchte man beispielsweise berechnen erhält man folgende Lösung
Ordnet die negativen Werte dem binären 1er-Komplement zu.
So sind die Ergebnisse der Berechnungen nicht völlig falsch, jedoch bleiben sie um exakt 1 verschoben und belegen weiterhin eine Kombination mit .
Löst beide dieser Probleme in dem die Idee beibehalten wird, aber die negativen Zahlen jeweils um vermindert werden. So wird gleichzeitig die Rechenverschiebung und die überflüssige verhindert.
Mit dieser Codierung kann eine -stellige Binärzahlen Werte zwischen und darstellen. MSB bleibt dabei das Vorzeichenbit mit
Floats
Kompromiss zwischen Größe des Exponenten (Range) und der Mantisse (Präzision). Over- und Underflow sind problematisch. (Exponent hat auch Vorzeichen)
IEEE 754
Bei IEEE 754 wird zur besseren Sortierbarkeit der Exponent nicht im 2K dargestellt, es wird um +127 verschoben (1023 bei 64 Bit)
Umrechnung
Es soll die Zahl dargestellt werden.
Dazu werden Vor- und Nachkommateil zuerst separat in Binär geschrieben.
Vorkommastelle
Die Zahl wird immer durch geteilt und der Rest notiert. Bis schließlich die letzte Zeile ein Ergebnis von oder liefert. Die Reste sind in umgekehrter Reihenfolge die signifikanten Ziffern der Binärzahl.
Nachkommastelle
Der Nachkommateil wird ähnlich konvertiert. In jedem Schritt wird der Nachkommateil verdoppelt und notiert ob das Ergebnis oder mehr ist. Die Bits werden sortiert nach Signifikanz berechnet.
lässt sich in Binärschreibweise nicht periodisch darstellen. Die Berechnung des Nachkommaanteils wird fortgesetzt bis man 0 erhält, oder eine periodische Folge erkennt.
Normierung
Vor- und Nachkommateil werden zusammengefasst
Diese Zahl wird nun normiert. Das Komma wird verschoben um das Format zu erhalten.
Durch Multiplikation mit einer entsprechend großen Zweierpotenz wird der Zahlenwert des Ausdrucks erhalten.
Darstellung
Der Exponent wird mit der Verschiebekonstanten zusammen zu , was in Binär der Zahl entspricht.
Das Vorzeichen ist positiv, dementsprechend wird das Vorzeichenbit auf gesetzt.
Durch die Verwendung der normierten Einstellung enthält die stets führende der Zahl keine notwendige Information und kann entfallen um Platz für eine weiter Nachkommastelle zu bieten.
Die Zahl ist vollständig nach IEEE754 umgewandelt also:
Ausnahmen
Einige Kombinationen sind für besondere Werte reserviert.
