Im Hexadezimalsystem (griech. hexa = sechs, lat. decem = zehn, auch Sedezimalsystem von lat. sedecim = sechzehn) werden Zahlen in einem Stellenwertsystem mit der Basis 16 (also einem 16er-System) dargestellt.
In der Datenverarbeitung wird das Hexadezimalsystem verwendet, um die von der Maschine im Dualsystem verarbeiteten Zahlen, oder sonstige binäre Muster, in einer für den Menschen übersichtlicheren Weise zu notieren. Das Hexadezimalsystem eignet sich hierfür besser als das Dezimalsystem, weil man es auch im Kopf leicht in das Dualsystem umwandeln kann, und weil die technisch gebräuchlichen Datenworte aus Oktetten bestehen, deren Wertebereich (00000000 bis 11111111) genau dem einer zweistelligen Hexadezimalzahl (00 bis FF) entspricht.
Wir sind es gewöhnt, im Dezimalsystem („10er-System“) zu rechnen. Das bedeutet, unser „arabisches“ (eigentlich indisches) Zahlensystem verwendet 10 Symbole zur Notation der Ziffern (0 bis 9). Das Hexadezimalsystem enthält dagegen 16 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. So lassen sich mit einer einstelligen hexadezimalen Zahl die Dezimalzahlenwerte von 0 bis 15 darstellen:
- align="center" | hexadezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | - align="center" | dual | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 | - align="center" | dezimal | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | - align="center" | oktal | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 |
Dieses hexadezimale, alpha-numerische Mischsystem ist derzeit die Standardrepräsentation der hexadezimalen Ziffern. Seit einigen Jahren existiert ein Vorschlag, hexadezimale Zahlen allgemein mit neuen, unzweideutigen, sogenannten „omni-litteralen“ (d. h. nur Buchstaben-) Ziffern darzustellen. Siehe dazu: Hexadezimalzeit und Hexadezimales Alphabet.
Um eine hexadezimale Zahl von einer normalen Dezimalzahl unterscheiden zu können, existieren mehrere Schreibweisen. Üblicherweise wird die hexadezimale Zahl mit einem Präfix oder Suffix versehen.
Verbreitete Schreibweisen sind zum Beispiel: 7216, 72H, 0x72, "72, 72h und $72.
Längere Zahlen werden auch in Hexadezimaldarstellung leicht unübersichtlich, so dass man Trennzeichen wie die Tausenderpunkte bei Dezimaldarstellung (im Deutschen, Kommata im Englischen) einführt, nur hier eher alle vier Stellen: AFFE.0815 . Hierfür gibt es allerdings keine feste Konvention, so dass auch hierbei Varianten vorkommen.
Zum Vergleich: Dezimale Zahlen werden, wenn eine Unterscheidung notwendig ist, zum Beispiel 11410 oder 114D geschrieben. Oktale Zahlen werden meist durch eine obligatorische führende Null gekennzeichnet, zum Beispiel 017.
Gezählt wird wie folgt:
- align="right" | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - align="right" | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | - align="right" | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2E | 2F | - align="right" | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | - align="right" | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | FA | FB | FC | FD | FE | FF | - align="right" | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | - align="right" | FF0 | FF1 | FF2 | FF3 | FF4 | FF5 | FF6 | FF7 | FF8 | FF9 | FFA | FFB | FFC | FFD | FFE | FFF | - align="right" | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | - align="right" | FFF0 | FFF1 | FFF2 | FFF3 | FFF4 | FFF5 | FFF6 | FFF7 | FFF8 | FFF9 | FFFA | FFFB | FFFC | FFFD | FFFE | FFFF | - align="right" | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Im Gegensatz zum Dezimalsystem gibt es keine Namen für Ziffern auf höheren Stellenwerten. Hexadezimalzahlen werden Ziffer für Ziffer gelesen, teilweise mit Angabe des Zahlensystems. 2F ist also nicht "eff-und-zwanzig" sondern "zwei-eff" oder "zwei-eff-hex".
Das Hexadezimalsystem eignet sich sehr gut, um Folgen von Bits (verwendet in der Digitaltechnik) darzustellen. Vier Stellen einer Bitfolge (ein Nibble, auch Tetrade) 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:
Dual Hexadezimal 1.1111 = 1F 11.0111.1100.0101 = 37C5 1010.1111.1111.1110.0000.1000.0001.0101 = AFFE0815
Computersoftware stellt daher Maschinensprache oft auf diese Weise dar.
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.
Im Beispiel der 127810 sähe das so aus: 1278 : 16 = 79 Rest 14 (= E) 79 : 16 = 4 Rest 15 (= F) 4 : 16 = 0 Rest 4
Die Hexadezimalzahl wird von unten nach oben gelesen und ergibt somit 4.F.E.
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:
Für das Zählen und Rechnen im Hexadezimalsystem gibt es eine Eselsbrücke: A = 10 und B = 11 kann sich jeder merken. C wie zwölf, D wie dreizehn, E für vierzehn kommt vor F wie fünfzehn.
Ein Beispiel für C#/C++
#include
Beispiel in Java (übernommen aus Paswiki) public static String getHex( int pDezimalZahl ) { String ergebnis = ""; String hexarray* = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }; int rest = Math.abs(pDezimalZahl); int aktbasiszahl = 0; if ( rest > 0 ) { while ( rest > 0 ) { aktbasiszahl = rest % 16; rest = ( rest / 16 ); ergebnis = hexarrayaktbasiszahl + ergebnis; } } else { ergebnis = "00"; } return ergebnis; }
نظام عد سداسي عشر | Hexadecimální číslo | Hexadecimale talsystem | Δεκαεξαδικό σύστημα αρίθμησης | Hexadecimal | Deksesuma sistemo | Sistema hexadecimal | Zenbaki-sistema hamaseitar | Heksadesimaalijärjestelmä | Système hexadécimal | Código hexadecimal | בסיס הקסדצימלי | Heksadekadski broj | Tizenhatos számrendszer | Sistema numerico esadecimale | 十六進記数法 | 십육진법 | Hexadecimaal | Sekstentalsystemet | Sekstentallsystemet | Szesnastkowy system liczbowy | Sistema hexadecimal | Шестнадцатеричная система счисления | Šestnástková sústava | Šestnajstiški številski sistem | Хексадецимални систем | Sedecimala talsystemet | เลขฐานสิบหก | Heksadesimal | Hệ thập lục phân | 十六进制
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Hexadezimalsystem".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world