3 · Zahlen

Zahlen darstellen

Vom Stellenwertsystem über Dual und Hexadezimal bis zu Bitbreite und negativen Zahlen.

Das Dezimalsystem bewusst betrachten

Im Dezimalsystem stehen zehn Ziffern zur Verfügung. Der Wert einer Ziffer hängt von ihrer Position ab. Die Stellenwerte sind Potenzen von 10. So lässt sich beispielsweise 90328 zerlegen in:

9·10⁴ + 0·10³ + 3·10² + 2·10¹ + 8·10⁰

Das Dualsystem funktioniert nach demselben Stellenwertprinzip – nur mit Basis 2.

Ganze Zahlen im Dualsystem

Im Dualsystem gibt es nur die Ziffern 0 und 1. Von rechts nach links besitzen die Stellen die Werte 1, 2, 4, 8, 16, 32, 64 …, also Potenzen von 2. Eine 1 bedeutet: Der Stellenwert wird addiert; eine 0 bedeutet: Er wird nicht verwendet.

101101₂ = 32 + 8 + 4 + 1 = 45₁₀

Bitbreite und Wertebereich

Mit n Bits gibt es 2n unterschiedliche Muster. Für vorzeichenlose ganze Zahlen ergibt sich der Wertebereich von 0 bis 2n−1.

BitsMusterVorzeichenloser Bereich
4160 … 15
82560 … 255
1665 5360 … 65 535

Hexadezimal als Kurzschreibweise

Vier Bits haben genau 16 mögliche Muster. Deshalb passt eine Gruppe aus vier Bits exakt zu einer Hexadezimalziffer. Die zusätzlichen Ziffernwerte 10 bis 15 werden mit A bis F geschrieben.

DualDezimalHex
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F

Beispiel: 1011 1000 1110 0001₂ lässt sich gruppenweise als B8E1₁₆ schreiben. Hexadezimal ist also keine andere Speicherung im Computer, sondern eine kompakte menschliche Schreibweise für Bitmuster.

Zahlen in der Praxis

Nicht alles, was wie eine Zahl aussieht, sollte als Zahl gespeichert werden. Telefonnummern, Postleitzahlen oder Inventarcodes können führende Nullen oder zusätzliche Zeichen enthalten und werden daher häufig als Text behandelt. Umgekehrt werden Datums- und Zeitangaben intern oft durch Zahlen repräsentiert und erst für die Anzeige formatiert.

Entscheidung

Welche der folgenden Daten würdest du als Zahl, welche als Text speichern: Körpergröße, Telefonnummer, Hausnummer, Temperatur, Postleitzahl, Punktzahl? Begründe jeweils anhand der geplanten Verarbeitung.

Wie viele Bits sind sinnvoll?

Eine feste Bitbreite begrenzt den darstellbaren Wertebereich. Zu wenige Bits führen zu Überläufen; sehr viele Bits verbrauchen zusätzlichen Speicher. Moderne Programmiersprachen und Datenbanken lösen dieses Problem unterschiedlich: Manche Datentypen haben feste Grenzen, andere können für ganze Zahlen bei Bedarf zusätzlichen Speicher verwenden.

Überlauf

Bei einer begrenzten Bitbreite kann eine Rechnung den erlaubten Wertebereich verlassen. Was dann passiert, hängt vom Datentyp und vom System ab. Dieses Verhalten darf nicht mit normaler mathematischer Arithmetik verwechselt werden.

Negative Zahlen und Zweierkomplement

Ein naheliegender Ansatz wäre ein zusätzliches Vorzeichenbit. Das erzeugt jedoch unter anderem zwei Darstellungen für Null und erschwert die Arithmetik. Üblich ist deshalb das Zweierkomplement.

Bei 8 Bit liegt der Bereich im Zweierkomplement bei −128 bis +127. Positive Werte sehen wie normale Dualzahlen aus. Einen negativen Wert erhält man aus dem positiven Betrag durch Bitumkehr und anschließendes Addieren von 1.

-30 in 8 Bit:
 30  = 00011110
invertieren → 11100001
+1          → 11100010

Ein wichtiger Vorteil: Addition kann mit derselben binären Addierschaltung für positive und negative Zahlen erfolgen, solange die feste Bitbreite korrekt berücksichtigt wird.

Quelle und Bearbeitung

Inhaltlich neu formulierte deutschsprachige Bearbeitung nach dem Computer Science Field Guide – Data Representation, einem Projekt der Computer Science Education Research Group der University of Canterbury (Neuseeland). Die Ausgangsinhalte stehen unter CC BY-SA 4.0. Diese Bearbeitung steht ebenfalls unter CC BY-SA 4.0. Änderungen: Übersetzung, Neuformulierung, didaktische Kürzung/Erweiterung, eigenes Layout und eigene Interaktionen.