Welche Zeit könnte passender sein, als der Vortag der Walpurgisnacht, um das Hexen zu erlernen? Da ich keine Blockquote habe, brauchen wir uns nicht auf den Blocksberg zu begeben. Stattdessen setzen wir uns auf unseren metaphorischen Besen und heben ab zu einem zauberhaften Flug durch den Raum der hexadezimalen Zahlen.
Freut euch auf einen richtigen Brocken an Informationen!
Weil wir zehn Finger haben, rechnen wir normalerweise dezimal, also im Zehnersystem. Konventionelle Computer haben keine Finger, sondern nur binäre digits – kennen also nur zwei Zustände. Deshalb nutzen sie das Binär- oder Dualsystem, bei dem es nur phallische Einsen und cavitätische Nullen gibt. Dabei entstehen schnell lange, unübersichtliche Ziffernfolgen, so dass man jeweils vier Bits („Nibble“) zu einer hexadezimalen Ziffer zusammenfasst, um die Zahlen wesentlich kompakter schreiben zu können. Da die üblichen arabischen Zahlzeichen von 0 bis 9 dafür nicht ausreichen, werden die Zeichen A bis F verwendet, um die Werte von (dezimal) 10 bis 15 darzustellen.
Im Dezimalsystem lässt sich jede natürliche Zahl n als Folge von Koeffizienten a_i mit a_i in {0, 1, ..9} (mit Hilfe – einer modifizierten – Einstein’schen Summenkonvention) schreiben , so dass n = a_i * 10^i .
Dies gilt auch allgemeiner für eine Basis b. Die a_i sind hier zwischen 0 und b-1, und es gilt n = a_i * b^i. Für b = 2, haben wir das Binärsystem, für b = 8 das Oktalsystem (braucht das eigentlich irgendjemand?) und für b = 16 das Hexadezimalsystem.
Um die Zahlenbasis zu unterscheiden, ist es eine Möglichkeit, 0x vor die hexadezimale Ziffernfolge zu schreiben. Auch $ davor oder H danach ist gebräuchlich.
Wie konvertiert man (manuell) vom Dezimal- ins Hexadezimalsystem?
Man dividiert die Zahl ganzzahlig durch 16, und erhält einen Quotienten Q und einen Rest R, also n/16 = Q, n%16 = R, so dass 16*Q + R = n. Der Rest R ergibt die letzte Stelle der Hex-Zahl. Dann wiederholt man mit Q so lange das Verfahren, bis Q aufgebraucht ist.
Die Rückkonvertierung kann man so machen:
Ergebnis auf 0 initialisieren
k sei die Anzahl der Ziffern
Wiederhole ..
Nimm die k-te Ziffer der hexadezimalen Zahl.
Wenn sie ein Buchstabe ist, so wandle sie in den entsprechenden Wert zwischen 10 und 15 um.
Schiebe den Wert um 4*(Länge-k) bits nach links. //Ist gleichbedeutend mit Multiplikation mit 16^(Länge-k)
Addiere dies zum Ergebnis
Erniedrige k um 1 (auch als k– schreibbar)
.. bis alle Ziffern aufgebraucht sind, d.h. k=0
Die Konvertierung von Hex zu Binär lässt sich leicht über eine Lookup-Tabelle realisieren. Dafür braucht man gar nichts zu rechnen, sondern bildet lediglich eine hexadezimale Ziffer in eine Gruppe von vier Einsen und Nullen ab, und umgekehrt.
Zwei Hexziffern ergeben ein Byte, und entsprechen einem ASCII/ANSI-Zeichen.
Natürlich kann man in Hex genauso rationale Zahlen darstellen, wie in dezimal auch. Die Nachkommastellen geben dann halt die Sechzehntel, Zweihundertsechsundfünfzigstel, Viertausendsechsundneunzigstel, usw. usf. an.
Ist jemandem aufgefallen, dass bei den Sechzehnerpotenzen im Dezimalsystem 16, 256, 4096, 65536, .. die letzte Stelle immer gleich 6 ist? (Im Hexadezimalsystem ist sie immer gleich 0.) Das lässt sich superleicht durch vollständige Induktion beweisen. Ähnlich lässt sich zeigen, dass die Folge der vorletzten Ziffern 1, 5, 9, 3, 7 sich periodisch wiederholt.
Mathematik ist schon magisch!
Im Mittelalter galten naturkundlich gebildete Frauen als Hexen. Heute würde man sie MINT-lerinnen nennen.
Unkonventionelle Frauen wie ich wären damals auf dem Scheiterhaufen gelandet.
Einfache Lookup-Tabelle für die Entsprechungen hexadezimaler Ziffern zu Binärzahlen:
0 | 0000 | 4 | 0100 | 8 | 1000 | C | 1100 |
---|---|---|---|---|---|---|---|
1 | 0001 | 5 | 0101 | 9 | 1001 | D | 1101 |
2 | 0010 | 6 | 0110 | A | 1010 | E | 1110 |
3 | 0011 | 7 | 0111 | B | 1011 | F | 1111 |
Entsprechungen der hexadezimalen Ziffern A bis F zu dezimalen Zahlen:
0xA = 10, 0xB = 11, 0xC = 12, 0xD = 13, 0xE = 14, 0xF = 15
Die Na’vi auf Pandora verwenden das Oktalsystem.
LikeGefällt 1 Person
Die pandorische Büchse wollte ich eigentlich nicht öffnen.
LikeLike
Oh, ein neues Profilbild.
Verbrennt sie, diese Hexe! 😉
Du nutzt ein Lookup-Table? Ich dachte, das hat man so im Blut. Am schönsten fand ich ja immer 1010 – entspricht der 10.
LikeLike
Das Profilbild ist zur Abwechslung. Bleibt vermutlich aber nur vorläufig.
Irgendwann blogge ich über das Making-of.
Ich habe geschrieben, dass man eine Lookup-Table benutzen _kann_ – nicht, dass ich das auch tue.
Bis ich mir eine passende Tabelle suche, habe ich das auch dynamisch gemacht.
A. Du meintest 0xA.
LikeLike
Klugscheißerin 😉
Natürlich meinte ich den hexadfezimalen Wert von 10. Natürlich.
LikeGefällt 1 Person
Also wenn schon, dann Nühmheißerin.
LikeLike
16 Finger wären auch cool 😎
Was man damit alles bespielen könnte….
LikeGefällt 1 Person
Ein Klavier vielleicht? Oder eine Harfe?
Das Einmaleins wäre aber weit umfangreicher, und deshalb schwerer zu erlernen.
LikeLike
Mehr higher und lower nibbles 😂
Jedes Bit ist wichtig.
LikeGefällt 1 Person
Es führt ein enges Tor zur Tugend.
Doch with a little bit of Glück
bist du zu dick (bist du zu dick).
LikeLike
Lol 😂
LikeLike
Pingback: Devie-Vorführung //2211 | breakpoint
Pingback: *zwitscher* //2304 | breakpoint
Pingback: 7.2. ~ 7*2 #eTag //2315 | breakpoint
Pingback: Die wunderbare Welt des Teilens //2691 | breakpoint