Wikipedia · einfach zusammengefasst · Stand
Hexadezimalsystem
Aussprache der Hexadezimalzahlen · 0x10 sprich: „eins-null“ (nicht: „zehn“), oder mit Kontext „hex eins-null“ · 0x1E sprich: „eins-E“, · 0xF112 sprich: „F-eins- …
Inhalt6 Abschnitte
Grundprinzip des Hexadezimalsystems
Das Hexadezimal- oder Sedezimalsystem ist ein Stellenwertsystem zur Basis 16. Es verwendet die Ziffern 0 bis 9 sowie die Zahlzeichen A, B, C, D, E und F beziehungsweise a bis f. Dabei stehen A bis F für die Dezimalwerte 10 bis 15. Seit Mitte der 1950er Jahre werden diese Buchstaben zur Darstellung der sechs zusätzlichen Ziffern verwendet.
Die Grundlage für die enge Verbindung zur Informatik ist 16 = 2⁴. Jede hexadezimale Ziffer entspricht daher genau einer Gruppe von vier Binärstellen, einem sogenannten Nibble. Ein Byte beziehungsweise Oktett mit acht Bits kann durch zwei hexadezimale Ziffern dargestellt werden. Hexadezimalzahlen sind deshalb eine kürzere und übersichtlichere Schreibweise für Binärzahlen.
Schreibweisen, Aussprache und Zählen
Damit hexadezimale Zahlen von Dezimalzahlen unterschieden werden können, werden verschiedene Indizes, Präfixe oder Suffixe verwendet: 72₁₆, 72hex, 72h, 72H, 72H, 0x72, $72, „72“ und X'72'. Besonders in der Programmierung sind 0x und das angehängte h nach der Intel-Konvention verbreitet. Das Dollar-Präfix kommt unter anderem in bestimmten Motorola- und MOS-Assemblersprachen vor; X'72' ist in der IBM-Großrechnerwelt, etwa in REXX, üblich. Dezimalzahlen können bei Bedarf mit einem Index gekennzeichnet werden, zum Beispiel 114₁₀.
Trennpunkte können zur Übersicht nach jeweils vier Hexadezimalstellen gesetzt werden. So kann ein 64-Bit-Wert als FFFF.FFFF.FFFF.FFFF oder ohne Trennpunkte als FFFFFFFFFFFFFFFF geschrieben werden. 1.0000₁₆ entspricht 65.536₁₀ und hat damit eine ähnliche Gruppierungsfunktion wie 1.000₁₀ im Dezimalsystem.
Hexadezimalzahlen werden meist Ziffer für Ziffer ausgesprochen. 0x10 heißt „eins-null“ oder mit Kontext „hex eins-null“, nicht „zehn“. 0x1E wird als „eins-E“ und 0xF112 als „F-eins-eins-zwei“ gelesen.
Gezählt wird von 0 bis F, danach beginnt die nächste Stelle mit 1: 0, 1, …, 9, A, B, C, D, E, F, 10, 11, …, 1F, 20. Nach FF folgt 100, nach FFF folgt 1000 und nach FFFF folgt 10000.
Rechnen mit Hexadezimalzahlen
Die Grundrechenarten können direkt im Hexadezimalsystem ausgeführt werden. Für die Multiplikation gibt es ein kleines Einmaleins mit den Faktoren 1 bis F und zusätzlich 10. Die Ergebnisse werden ebenfalls hexadezimal geschrieben. Ein Beispiel ist 2 · 5 = A. In der Multiplikationstafel sucht man den Schnittpunkt der Spalte 2 und der Zeile 5.
Negative Zahlen lassen sich ebenfalls darstellen. In den meisten Fällen wird dafür die Zweierkomplement-Darstellung verwendet. Durch diese Darstellung müssen die Mechanismen der Grundrechenarten nicht geändert werden.
Bedeutung für Informatik und Mathematik
In der Digitaltechnik und Informatik eignet sich das Hexadezimalsystem besonders zur Darstellung von Bitfolgen. Die Bits werden in Vierergruppen geteilt, und jede Gruppe wird anhand ihrer Binärwerte in eine Hexadezimalziffer übersetzt. Der Punkt dient dabei nur der Gruppierung.
Beispiele aus der Zuordnung sind:
- 1111₂ = F₁₆ = 15₁₀
- 1.1111₂ = 1F₁₆ = 31₁₀
- 11.0111.1100.0101₂ = 37C5₁₆ = 14.277₁₀
- 1010.1100.1101.1100₂ = ACDC₁₆ = 44.252₁₀
- 1.0000.0000.0000.0000₂ = 1.0000₁₆ = 65.536₁₀
- 1010.1111.1111.1110.0000.1000.0001.0101₂ = AFFE.0815₁₆ = 2.952.661.013₁₀
Software stellt Maschinensprache daher häufig hexadezimal dar. Das Oktalsystem mit der Basis 8 wurde in den 1960er und 1970er Jahren häufig verwendet, findet heute aber seltener Anwendung, beispielsweise bei der Darstellung von Zeichen in C.
Auch mathematisch ist das System bedeutsam. Die Bailey-Borwein-Plouffe-Formel, die 1995 entwickelt wurde, kann jede beliebige Hexadezimalstelle von π berechnen, ohne die vorhergehenden Stellen zu benötigen.
Umwandlung zwischen Zahlensystemen
Zur Umwandlung einer Dezimalzahl in eine Hexadezimalzahl wird das Divisions- oder Restwertverfahren verwendet. Die Zahl wird wiederholt durch 16 geteilt; die Reste werden von unten nach oben gelesen. Für 1278₁₀ gilt:
1278 : 16 = 79 Rest 14 (= E) 79 : 16 = 4 Rest 15 (= F) 4 : 16 = 0 Rest 4
Damit ist 1278₁₀ = 4FE₁₆.
Für die Umwandlung einer Hexadezimalzahl in eine Dezimalzahl wird jede Ziffer mit der passenden Potenz von 16 multipliziert. A bis F werden zuvor durch 10 bis 15 ersetzt. Bei 4FE₁₆ ergibt sich:
4FE₁₆ = 4 · 16² + 15 · 16¹ + 14 · 16⁰ = 1278₁₀.
Zwischen Hexadezimal- und Oktalsystem ist der Weg über das Binärsystem zweckmäßig, weil beide Basen Zweierpotenzen sind. Für Hexadezimal nach Oktal werden zunächst die Hexadezimalziffern in Vierergruppen von Bits umgewandelt, diese Binärfolge anschließend in Dreiergruppen geteilt und dann oktal gelesen. Beispiel:
8D53₁₆ = 1000.1101.0101.0011₂ = 1'000'110'101'010'011₂ = 106523₈.
In der umgekehrten Richtung gilt: Oktalfolge → Binärfolge in Dreiergruppen → Binärfolge in Vierergruppen → Hexadezimalfolge. Taschenrechner und Programme mit einer Programmierer-Option unterstützen solche Umrechnungen zwischen Binär-, Oktal-, Dezimal- und Hexadezimalsystem.
Hexadezimalbrüche und mathematische Darstellung
Als Stellenwertsystem besitzt das Hexadezimalsystem auch Nachkommastellen. Die Stelle an Position n nach dem Komma hat den Wert 1/16ⁿ. Die erste Nachkommastelle besitzt daher den Stellenwert 1/16, die zweite 1/256 und die dritte 1/4096.
Da 16 nur den Primfaktor 2 besitzt, haben gekürzte Brüche genau dann eine endliche Hexadezimaldarstellung, wenn ihr Nenner eine Zweierpotenz ist. Bei Nennern, die keine Zweierpotenz sind, entsteht eine periodische Darstellung. Beispiele sind 1/2 = 0,8₁₆, 1/3 = 0,5₁₆, 1/4 = 0,4₁₆, 1/5 = 0,3₁₆, 1/6 = 0,2A₁₆, 1/8 = 0,2₁₆, 1/10₁₆ = 0,1₁₆ und 1/F₁₆ = 0,1₁₆. Weitere im Artikel angegebene Beispiele sind 1/9 = 0,1C7₁₆, 1/7 = 0,249₁₆ und 1/B₁₆ = 0,1745D₁₆.
Allgemein lässt sich eine Hexadezimalzahl mit ganzzahligen Stellen und Nachkommastellen im Dezimalsystem als hₘhₘ₋₁…h₀,h₋₁h₋₂…h₋ₙ = Σᵢ₌₋ₙᵐ hᵢ · (16₁₀)ⁱ schreiben, wobei m,n ∈ ℕ und hᵢ ∈ {0,1,…,15} gilt. In hexadezimaler Form lautet die Basis entsprechend (10₁₆)ⁱ; dann gehören hᵢ zu {0,1,…,9,A,…,F}.