Hexadezimalsystem

Hexadezimalziffern,
binär und dezimal:
  Hex.   Dualsystem   Dez.  
                   
  0   0 0 0 0   00  
  1   0 0 0 1   01  
  2   0 0 1 0   02  
  3   0 0 1 1   03  
                   
  4   0 1 0 0   04  
  5   0 1 0 1   05  
  6   0 1 1 0   06  
  7   0 1 1 1   07  
                   
  8   1 0 0 0   08  
  9   1 0 0 1   09  
  A   1 0 1 0   10  
  B   1 0 1 1   11  
                   
  C   1 1 0 0   12  
  D   1 1 0 1   13  
  E   1 1 1 0   14  
  F   1 1 1 1   15  
                   

Im Hexadezimalsystem werden Zahlen in einem Stellenwertsystem zur Basis 16 dargestellt. „Hexadezimal“ (von griech. hexa „sechs“ und lat. decem „zehn“) ist ein lateinisch-griechisches Mischwort; eine andere korrekte, jedoch seltener verwendete Bezeichnung ist sedezimal (von lat. sedecim „sechzehn“). Eine weitere alternative Bezeichnung ist hexadekadisch (griechisch). Falsch hingegen ist der Ausdruck hexagesimal, der synonym zu sexagesimal ist und das Zahlensystem zur Basis 60 bezeichnet.

In der Datenverarbeitung wird das Hexadezimalsystem sehr oft verwendet, da es sich hierbei letztlich nur um eine komfortablere Verwaltung des Binärsystems handelt. Die Datenwörter bestehen in der Informatik meist aus Oktetten, die statt als achtstellige Binärzahlen auch als nur zweistellige Hexadezimalzahlen dargestellt werden können. Im Gegensatz zum Dezimalsystem eignet sich das Hexadezimalsystem mit seiner Basis als vierte Zweierpotenz (16 = 24) zur einfacheren Notation der Binärzahlen, da stets eine feste Anzahl Zeichen zur Wiedergabe des Datenwortes benötigt wird. Nibbles können exakt mit einer hexadezimalen Ziffer und Bytes mit zwei hexadezimalen Ziffern dargestellt werden.

In den 1960er und 1970er Jahren wurde in der Informatik häufig auch das Oktalsystem mit seiner Basis als dritte Zweierpotenz (8 = 23) verwendet, da es mit den üblichen Ziffern von 0 bis 7 auskommt. Es findet aber heute nur noch selten Anwendung. Auch gibt es noch weitere Zahlensysteme mit verschiedenen Basiswerten.

Wir sind es gewohnt, im Dezimalsystem zu rechnen. Das bedeutet, unser indo-arabisches Zahlensystem verwendet zehn Symbole zur Notation der Ziffern (0 bis 9). Das Hexadezimalsystem enthält dagegen sechzehn Ziffern. Seit Mitte der 1950er Jahre werden zur Darstellung der sechs zusätzlichen Ziffern die Buchstaben A bis F oder a bis f als Zahlzeichen verwendet. Dies geht auf die damalige Praxis der IBM-Informatiker zurück.

Darstellung von Hexadezimalzahlen

Um hexadezimale von dezimalen Zahlen unterscheiden zu können, existieren mehrere Schreibweisen. Üblicherweise werden hexadezimale Zahlen mit einem Index oder Präfix versehen.

Verbreitete Schreibweisen sind: 7216, 72hex, 72h, 72H, 72H, 0x72, $72, "72 und X'72' wobei das Präfix 0x und das Suffix h insbesondere in der Programmierung und technischen Informatik Verwendung finden. Das Anhängen eines h an die Hex-Zahl ist auch als Intel-Konvention geläufig. Die Schreibweise mit dem Dollar-Präfix ist in den Assemblersprachen bestimmter Prozessorfamilien üblich, insbesondere bei Motorola, zum Beispiel beim Motorola 68xx , aber auch beim MOS 65xx; die Schreibweise X'72' ist in der Welt der IBM-Großrechner üblich, wie in REXX.

Der Übersicht dienende Trennpunkte können bei Hexadezimalzahlen alle vier Stellen gesetzt werden, trennen also Gruppen von jeweils sechzehn Bit. Die Bedeutung der 1.000016 = 65.53610 unter den hexadezimalen Zahlen entspricht also jener der 1.00010 unter den dezimalen Zahlen.

Zum Vergleich ein voller Vierundsechzig-Bit-Bus mit und ohne Trennpunkte: FFFF.FFFF.FFFF.FFFF und FFFFFFFFFFFFFFFF

Dezimale Zahlen werden, wo sie nicht der zu erwartende Normalfall sind, indiziert: 11410

Zählen im Hexadezimalsystem

Gezählt wird wie folgt:

0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
100 101 102 103 104 105 106 107 108 109 10A 10B 10C 10D 10E 10F
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
FF0 FF1 FF2 FF3 FF4 FF5 FF6 FF7 FF8 FF9 FFA FFB FFC FFD FFE FFF
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 100A 100B 100C 100D 100E 100F
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
FFF0 FFF1 FFF2 FFF3 FFF4 FFF5 FFF6 FFF7 FFF8 FFF9 FFFA FFFB FFFC FFFD FFFE FFFF
10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 1000A 1000B 1000C 1000D 1000E 1000F
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

15 hexadezimal entspricht z.B. 21 dezimal (1*161+5*160) und
F5 hexadezimal entspricht z.B. 245 dezimal (F(15)*161+5*160)

Aussprache der Hexadezimalzahlen

Für die hexadezimalen Ziffern und Zahlen sind keine eigenständigen Namen gebräuchlich. Hexadezimalzahlen werden daher meist Ziffer für Ziffer gelesen.

Beispiele:

Kleines Einmaleins im Hexadezimalsystem

* 1 2 3 4 5 6 7 8 9 A B C D E F 10
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20
3 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30
4 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40
5 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50
6 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60
7 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70
8 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80
9 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90
A A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0
B B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 B0
C C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0
D D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0
E E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0
F F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0
10 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100

Hexadezimalbrüche

Da das Hexadezimalsystem ein Stellenwertsystem ist, haben die Stellen nach dem Komma (das auch hier manchmal als Beistrich, manchmal als Punkt geschrieben wird) den Stellenwert {1 \over B^{n}}, wobei B die dezimale Basis 16 und n die Position der jeweiligen Nachkommastelle ist. Die erste Nachkommastelle (n=1) hat damit den Stellenwert {1 \over 16^{1}}={1 \over 16}, die zweite Nachkommastelle (n=2) hat den Stellenwert {1 \over 16^{2}}={1 \over 256}, die dritte Nachkommastelle (n=3) hat den Wert {1 \over 16^{3}}={1 \over 4096} und so weiter.

Da die Zahl 16 nur über den einzigen Primfaktor 2 verfügt, ergibt sich bei allen gekürzten Brüchen, deren Nenner keine Zweierpotenz ist, eine periodische Kommadarstellung im Hexadezimalsystem:

{1 \over 1} = 1 {1 \over 5} = 0,316 {1 \over 9} = 0,1C716 {1 \over {\mathrm  D}_{{16}}} = 0,13B16
{1 \over 2} = 0,816 {1 \over 6} = 0,2A16 {1 \over {\mathrm  A}_{{16}}} = 0,1916 {1 \over {\mathrm  E}_{{16}}} = 0,124916
{1 \over 3} = 0,516 {1 \over 7} = 0,24916 {1 \over {\mathrm  B}_{{16}}} = 0,1745D16 {1 \over {\mathrm  F}_{{16}}} = 0,116
{1 \over 4} = 0,416 {1 \over 8} = 0,216 {1 \over {\mathrm  C}_{{16}}} = 0,1516 {1 \over 10_{{16}}} = 0,116

Negative Zahlen

Negative Zahlen lassen sich ebenfalls darstellen. Dazu wird in den meisten Fällen die Zweierkomplement-Darstellung verwendet. Durch ihre Auslegung braucht an den Mechanismen für Rechnungen in den Grundrechenarten keine Änderung vorgenommen zu werden.

Anwendung

Informatik

Das Hexadezimalsystem eignet sich sehr gut, um Folgen von Bits (verwendet in der Digitaltechnik) darzustellen. Vier Stellen einer Bitfolge (ein Nibble, auch Tetrade genannt) werden wie eine Dualzahl interpretiert und entsprechen so einer Ziffer des Hexadezimalsystems, da 16 die vierte Potenz von 2 ist. Die Hexadezimaldarstellung der Bitfolgen ist leichter zu lesen und schneller zu schreiben:

                                  Binär      Hexadezimal           Dezimal
                                   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

Der Punkt dient bei dieser Darstellung lediglich der Zifferngruppierung.

Software stellt daher Maschinensprache oft auf diese Weise dar.

Mathematik

Seit die Bailey-Borwein-Plouffe-Formel zur Berechnung von π im Jahr 1995 entwickelt wurde, ist das Hexadezimalsystem auch jenseits der Informatik von Bedeutung. Diese Summenformel kann jede beliebige Hexadezimalstelle von π berechnen, ohne die vorhergehenden Stellen dafür zu benötigen.

Konvertierung in andere Zahlensysteme

Viele Taschenrechner, aber auch die genauso genannten Hilfsprogramme auf Personal Computern, bieten Umrechnungen zum Zahlbasiswechsel an. Insbesondere rechnet das Windows-Programm „Rechner“ (calc.exe) Binär-, Hexadezimal- und Oktalzahlen in Dezimale und zurück, wenn man unter „Ansicht“ den Menüpunkt „Programmierer“ auswählt. In vielen Linux-Distributionen ist ein „Taschenrechner“-Hilfsprogramm vorinstalliert, das eine solche „Programmierer“-Option beinhaltet, oder man kann an der Kommandozeile die Anweisung printf (als eingebauten bash-Befehl oder gesondertes Hilfsprogramm) dafür benutzen.

Umwandlung von Dezimalzahlen in Hexadezimalzahlen

Eine Möglichkeit, eine Zahl des Dezimalsystems in eine Zahl des Hexadezimalsystems umzurechnen, ist die Betrachtung der Divisionsreste, die entstehen, wenn die Zahl durch die Basis 16 geteilt wird, die Methode wird daher auch Divisionsverfahren oder Restwertverfahren genannt.

Im Beispiel der 127810 sähe das so aus:

1278: 16 = 79 Rest: 14 (= E) (Nr:1278-(79*16)=14)
  79: 16 =  4 Rest: 15 (= F) (Nr:79-(4*16)=15)
   4: 16 =  0 Rest:  4       (Nr:4-(0*16)=4)

Die Hexadezimalzahl wird von unten nach oben gelesen und ergibt somit 4.F.E.

Umwandlung von Hexadezimalzahlen in Dezimalzahlen

Um eine Hexadezimalzahl in eine Dezimalzahl umzuwandeln, muss man die einzelnen Ziffern mit der jeweiligen Potenz der Basis multiplizieren. Der Exponent der Basis entspricht der Stelle der Ziffer, wobei der Zahl vor dem Komma eine Null zugeordnet wird. Dazu muss man allerdings noch die Ziffern A, B, C, D, E, F in die entsprechenden Dezimalzahlen 10, 11, 12, 13, 14, 15 umwandeln.

Beispiel für 4FE16:

[4FE]_{{16}}=4\cdot 16^{2}+15\cdot 16^{1}+14\cdot 16^{0}=[1278]_{{10}}

Umwandlung Hexadezimal nach Oktal

Um Zahlen zwischen dem vor allem früher in der Informatik verbreiteten Oktalsystem und dem heute gebräuchlichen Hexadezimalsystem umzuwandeln, ist es zweckmäßig, den Zwischenschritt über das Binärsystem zu gehen. Dies gelingt recht einfach, da sowohl die Basis 8, als auch die Basis 16 Zweierpotenzen sind.

Beispiel für 8D5316:

[8D53]_{{16}}=1000.1101.0101.0011_{{2}}=1'000'110'101'010'011_{{2}}=106523_{{8}}

Umwandlung Oktal nach Hexadezimal

Genauso einfach erfolgt die Umwandlung von oktal nach hexadezimal, nur dass hier der Weg

Oktalfolge → Binärfolge in Dreiergruppen → Binärfolge in Vierergruppen → Hexadezimalfolge

gegangen wird.

Mathematische Darstellung des Hexadezimalsystems

Formuliert im Dezimalsystem:

h_{m}h_{{m-1}}\cdots h_{0},h_{{-1}}h_{{-2}}\cdots h_{{-n}}=\sum _{{i=-n}}^{m}h_{i}\cdot {(16_{{10}})}^{i}\qquad m,n\in {\mathbb  {N}}\quad h_{i}\in \{0;1;\cdots ;15\}

Formuliert im Hexadezimalsystem:

h_{m}h_{{m-1}}\cdots h_{0},h_{{-1}}h_{{-2}}\cdots h_{{-n}}=\sum _{{i=-n}}^{m}h_{i}\cdot {(10_{{16}})}^{i}\qquad m,n\in {\mathbb  {N}}\quad h_{i}\in \{0;1;\cdots ;9;A;\cdots ;F\}

Siehe auch

Trenner
Basierend auf einem Artikel in: Wikipedia.de
Seitenende
Seite zurück
©  biancahoegel.de
Datum der letzten Änderung:  Jena, den: 21.12. 2022