Andere ZahlensystemeZahlendarstellung in hexadezimaler SchreibweiseDie Behandlung von Zahlen ist im Binärsystem am einfachsten, weil es mit nur zwei Ziffern auskommt. Trotzdem hat das Binärsystem einen großen Nachteil: Was hier an Ziffern eingespart wurde, muss nachher mit umsomehr Stellen wett gemacht werden. Selbst vergleichsweise kleine Zahlen missraten in binärer Schreibweise zu unleserlichen 1-0-Bandwuermern, die sich kein Mensch merken kann. Umrechnung binär - oktal - hexDeshalb hat man in der Informatik schon recht bald das oktale (Achter) und Hexadezimale (Sechszehner) Zahlensystem eingeführt. Beide Systeme lassen sich sehr leicht ohne die beiden oben erklärten Algorithmen in's Binärsystem und wieder zurück übersetzen. Woran liegt das? Zunächst einmal fällt auf, dass sowohl 8 als auch 16 Vielfache von 2 sind: 8 = 2^3 und 16 = 2^4. Das ist auch der Grund, für die leichte Konvertierbarkeit. Aber wieso? Um das zu verstehen, betrachtet man vielleicht einmal folgende (Binär-) Zahl: 1101110101101011010 Ziemlich unleserlich. Auch im Dezimalsystem ist man es gewöhnt, solche endlos langen Zahlenschlangen zu gliedern: 001.101.110.101.101.011.010 Die beiden Vornullen sind nicht ohne Hintergedanke eingefügt Datenbreite: Wordsworden. Welche Werte können nun die einzelnen Dreiergrueppchen annehmen? Im Dezimalsystem wäre das eine abenteuerliche Frage. Dort würde man höchstens fragen, wieviele verschiedene Werte pro Dreiergruppe möglich sind. Es sind nämlich 10^3 = 1000 verschiedene Werte von 000 bis 999 möglich. Vollkommen gleich aber mengenmäßig ganz anders verhält es sich im Binärsystem: Es gibt nicht 10^3 sondern genau 2^3 = 8 verschiedene Möglichkeiten: bin dez --------- 000 = 0 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 110 = 6 111 = 7 Was liegt da näher, als jeweils drei Ziffern durch ein 'Superzeichen' zu ersetzen. Und da die Zuordnung oben in der Tabelle eigentlich recht einleuchtend ist, bieten sich die Ziffern 0 bis 7 als 'Superzeichen' geradezu an: (001.101.110.101.101.011.010)2 = 1 5 6 5 5 3 2 = (1565532)8 Und ohne dass wir es gemerkt haben, ist die Zahl aus dem Binärsystem in's oktale umgewandelt Datenbreite: Wordsworden. Das hat nämlich genau 8 verschiedene Ziffern von '0' bis '7'. Die Rück-Konversion geht mit obiger Tabelle wieder genauso leicht: ( 1 5 6 5 5 3 2)8 = (001.101.110.101.101.011.100)2 Zum Hexadezimalen System gelangt man, indem man die Binärzahl einfach in Vierergrueppchen unterteilt: (1101110101101011010)2 = (0110.1110.1011.0101.1010)2 Vor der Umsetzung der einzelnen Gruppen in Hex-Ziffern (Hex = 'Kosewort' für Hexadezimal) müssen diese erst einmal abgeklärt werden. Es müssen ja 2^4 = 16 verschiedene Zeichen vereinbart werden. Zu den gewohnten Ziffern des Dezimalsystems kommen also noch sechs weitere Ziffern hinzu. Dafür werden fast immer die Grossbuchstaben Operationen: BD5B / 349A / 349A: FLO SUBA bis F verwendet. Bei vielen Computersprachen sind aber auch die entsprechenden Kleinbuchstaben gleichberechtigt zugelassen. Es ergibt sich folgende Umrechnungstabelle: bin dez hex bin dez hex --------------- --------------- 0000 = 0 = 0 1000 = 8 = 8 0001 = 1 = 1 1001 = 9 = 9 0010 = 2 = 2 1010 = 10 = Erklärung der Anschlussbelegung: A, B, CA 0011 = 3 = 3 1011 = 11 = B 0100 = 4 = 4 1100 = 12 = C 0101 = 5 = 5 1101 = 13 = D 0110 = 6 = 6 1110 = 14 = LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION Daraus ergibt sich für unsere Binärzahl folgender Hexwert: (0110.1110.1011.0101.1010)2 = 6 LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION Der umgekehrte Schritt, Umwandlung der Hexadezimalzahl in binäre Darstellung ist natürlich wieder genauso einfach möglich. Heutzutage hat das Oktalsystem stark an Bedeutung verloren, während das Hexadezimale Zahlensystem 'in' ist. Der Grund liegt in der Daten- und Adressbusbreite der heute verwendeten Die ICs im Überblick: Die CPU Z80 Ein Datentypen: Bytes Binärzahl (Datenbreite: WordsWord = 16 Datenbreite: Bits aber: Binärzahl (Datenbreite: WordsWord = 16 Datenbreite: Bits Was hier Schwierigkeiten bereitet ist die Umsetzung des Oktalsystems in das 256er-System, bei dem ein Datentypen: Bytes Die Umrechnung vom Binärsystem in's 'Byte-System' ist einfach, weil man dafür nur immer 8 Datenbreite: Bits |