breakplaining: Hex //2111

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

Werbeanzeigen

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

12 Antworten zu breakplaining: Hex //2111

  1. Sully schreibt:

    Die Na’vi auf Pandora verwenden das Oktalsystem.

    Gefällt 1 Person

  2. ednong schreibt:

    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.

    Liken

  3. Plietsche Jung schreibt:

    16 Finger wären auch cool 😎
    Was man damit alles bespielen könnte….

    Gefällt 1 Person

  4. Pingback: Devie-Vorführung //2211 | breakpoint

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.