\"Hexa-WAS?!?\"
br /
\"Hexadezimal\" steht für \"16\", die Zahl Sechzehn.
Dies sagt schon mal was über das System aus: es basiert auf der Zahl 16.
Unser normales Dezimalsystem baut dagegen auf der Zahl 10 auf, (Dezimal=Zehn).
Bevor ich nun das Hex-System erklären kann, muss ich ein wenig ausholen, und das Dezimalsystem erklären:
\"32\"
Eine normale Zahl in unserem Dezimal-System.
Ich kann diese auch durch eine kleine Rechenaufgabe darstellen:
3*10
+
2*1
=
32
Eine andere Zahl:
5634
=
5*1000
+
6*100
+
3*10
+
4*1
Merken wir was? Natürlich, jede Stelle hat die zehnfache Wertigkeit der vorhergehenden.
Ich könnte auch sagen:
5634
=
5*10 hoch 3
+
6*10 hoch 2
+
3*10 hoch 1
+
4*10 hoch 0
Jede Zahl lässt sich also aus den einzelnen Stellen zusammenbasteln, indem ich:
1. Jede Stelle mit einem Faktor malnehme,
2. und dann alle Ergebnisse zusammenzähle.
Den Faktor bestimme ich, indem ich die Basis 10 nehme, und, von rechts beginnend, anfange zu zählen. Ich potenziere dann die Basis mit dem Wert, den ich beim Zählen gefunden habe, wobei ich allerdings bei 0 anfange zu zählen.
Die Stelle ganz rechts hat immer (nicht nur im Dezimalsystem) den Faktor 1 (=[Basis des Zahlensystems] hoch 0, und x hoch 0 = 1).
Wir wissen nun, wie unser Zahlensystem (Dezimalsystem) aufgebaut ist, also gehen wir zum Hexadezimalsystem, einem anderen Stellenwertsystem, über:
0x20
Eine Zahl im Hex-System (\"0x\" soll bedeuten, dass dies eine Hex-System-Zahl ist, und keine Dez-Sys-Zahl)
Hinweis: Die Schreibweise \"0x[Zahl im Hex-System]\" entstammt der Syntax der Programmiersprache C, unter (Visual)Basic ist die Schreibweise \"&H[Zahl im Hex-System]\" üblich.
Die eigentliche Zahl ist also:
\"20\"
Was machen wir damit? Ganz einfach, einfach jede Stelle mit ihrem Faktor, also ihrem Stellenwert malnehmen:
0x20
=
2*16
+
0*1
=
32 (Dezimal)
Das Schema ist genau gleich, was sich geändert hat, ist der Faktor.
Der Faktor \"1\" für die Stelle ganz rechts ist ja immer gleich, aber der Faktor für die linke Stelle ist anders, nämlich 16(=\"Hexadezime\"(Lateinisch))
Was ist, wenn wir die Zahl
0x4521
umrechnen wollen?
0x4521=
4*16*16*16 (=4096 =16 hoch 3)
+
5*16*16 (=256 =16 hoch 2)
+
2*16 (=16 =16 hoch 1)
+
1*1 (=1 =16 hoch 0)
=
17697
Spätestens jetzt dürfte der Sinn der obigen Grundschul-Rechen-Übungen klargeworden sein.
Wir können jetzt jede Zahl im Hex-System in unser gewohntes System umrechnen.
Noch zwei Anmerkungen:
1. Was hat die Zahl 0x20 = 32 dez. für eine Bedeutung, die taucht doch schon wieder auf*?
Ganz einfach, es ist der ASCII-Code für das Leerzeichen. Für nähere Infos bitte das Dokument über ASCII-Codes abrufen.
*Schon wieder? Ich verwies im Dokument über URLs auf das vorliegende Dokument.
2. P R O B L E M !
Wieso? Nun, wir sagten, wir könnten jede Zahl umrechenen, aber dazu müssen wir noch was wissen:
Jeder kennt die Ziffern 0123456789, zehn Ziffern, die im Dezimalsystem benutzt werden, und auch im Hexadezimal-System.
Das reicht aber nicht: denn eine 1 in der zweiten Stelle von rechts in einer Hex-Zahl ist ja schon 16 wert, und die höchste Zahl, die wir mit nur einer Ziffer darstellen können, ist 9!
FALSCH, wir können _im Dezimalsystem_ max. 9 mit einer Ziffer darstellen, im Hex-System gibt es nämlich 16 Ziffern, mit Werten von 0 bis 15, denn 16 können wir ja als 0x10 darstellen.
Diese Ziffern lauten:
0123456789ABCDEF
wobei A den Wert 10 hat, F den Wert 15, die anderen Buchstaben entsprechend.
Allgemein kann man sagen, dass jedes Stellenwertsystem so viele Ziffern benötigt, wie die Basis groß ist, wenn wir also ein Stellenwertsystem mit der Basis 36 benutzen wollten, könnten wir die Ziffern 0 bis 9, und dann die Buchstaben A bis Z benutzen, Z hätte den Wert 35 (dez).
Dadurch, dass es mehr Ziffern gibt (0 bis F), werden große Zahlen in ihrer Darstellung im Hex-System kürzer, als im Dezimal-System.
Ein Beispiel:
FFFFFFFF
ist eine Hex-Zahl, und im Dezimalsystem wäre diese Zahl
4294967295
wert!
Noch deutlicher sieht man den Unterschied, wenn die Zahl noch größer ist:
FFFFFFFFFFFFFFFF
=
18446744073709551615
Zahlen werden also kürzer, aber es gibt noch einen Grund, warum das Hex-System praktisch ist:
die größte zweistellige Hex-Zahl ist:
FF (= 255 dez.)
und dies ist genau die größte Zahl, die sich mit einem Byte darstellen lässt.
Wir können also eine Datei öffnen, für jedes Byte die Hexadezimal-Zahl berechnen, und diese hat immer nur max. zwei Stellen pro Byte.
Was haben wir jetzt? Genau, einen Hex-Editor, der also für jedes Byte einer Datei die Hex-Zahl anzeigt, immer zweistellig, evtl. mit führender 0.
Woher kennen wir das noch?
Genau, Farbangaben in HTML-Dateien.
Uns ist vielleicht schon mal ein Abschnitt in einer HTML-Datei aufgefallen, in dem eine Farbe definiert wurde:
[...] 1 Vorzeichenbit, 15 Bits für die Zahl, führt zu der Obergrenze von 32767 und der Untergrenze von -32767.
Da man aber +0 = -0 behaupten kann, können wir entweder die Obergrenze um eins erhöhen, oder die Untergrenze um eins erniedrigen.
2.: Mit einer Hex-Ziffer können wir Zahlen von 0 bis F (=15) speichern, genau wie mit vier Bits (=Binär-Stellen):
1*8 (2^3)
1*4 (2^2)
1*2 (2^1)
1*1 (2^0)
=15, mit einer Hex-Stelle können wir also genau ein halbes Byte (=4 Bits) darstellen, mit zweien also ein ganzes Byte, wir haben das oben schon festgestellt, aber jetzt ist es plausibel.
Tip für Windows-Nutzer: Der normale Taschenrechner kennt das Hex-System, das Dez-System, das Oktalsystem (Basis 8), sowie das Binärsystem.
Man muss ihn allerdings im Menü \"Ansicht\" von \"Standard\" auf \"Wissenschaftlich\" umstellen!
|