Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Ganze Zahlen binär und hexadezimal schreiben

Nach dieser Lektion: Ich kann ganze Zahlen binär und hexadezimal schreiben.

Lektion, 45 Min.6 BefehleLab für Compilerbau und Rechnerarchitektur: gcc, flex, bison und RISC-V in einer VM

Buchstaben in einer Zahl

Dreh deinen WLAN-Router zu Hause um. Auf dem Aufkleber steht oft eine Adresse wie 3C:A6:2F:11:08:9E.

Das ist eine Zahl, obwohl Buchstaben darin stehen. Der Router selbst kennt nur Schalter, die an oder aus sind. Heute lernst du, wie beides zusammenpasst.

Am Ende dieser Lektion

Notiz

Ich kann ganze Zahlen binär und hexadezimal schreiben.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Biteine binäre Ziffer, also 0 oder 1
Byteeine Gruppe von acht Bits
Dezimaldas übliche Zählen mit den zehn Ziffern 0 bis 9
BinärZählen mit nur zwei Ziffern, 0 und 1100101
Stellenwertwas eine Ziffer wegen ihres Platzes wert ist
HexadezimalZählen in Sechzehnern, mit 0 bis 9 und A bis F3C

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bevor du anfängst

Notiz

Drück oben in der Leiste auf Lab starten. Das Lab ist eine ganze Ubuntu-Maschine für dich allein und braucht eine Minute zum Hochfahren. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal der Maschine.

Binär kennt nur 0 und 1

Im Computer hält jede Zahl aus Schaltern, die aus oder an sind. Aus schreiben wir als 0, an als 1.

Im Dezimalsystem ist jede Stelle zehnmal so viel wert wie die rechts daneben. Binär ist sie doppelt so viel wert. Ein Byte hat acht Stellen: 128, 64, 32, 16, 8, 4, 2 und 1. Zähl die Stellen zusammen, an denen eine 1 steht.

Beispiel: die Zahl 37 in einem Byte

Stellenwert1286432168421
Bit00100101
Wert003200401

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

In den Ordner arch wechseln

Befehl
cd ~/arch

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Python schreibt 37 binär

Befehl
python3 -c "print(bin(37))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Bits wieder dezimal lesen

Befehl
python3 -c "print(int('100101', 2))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Halbieren macht aus dezimal binär

Teil die Zahl durch 2 und schreib den Rest auf. Teil das Ergebnis wieder durch 2. Mach weiter, bis du bei 0 ankommst.

Die Reste sind die Bits. Lies sie von unten nach oben, also vom letzten Rest zum ersten.

Beispiel: 11 durch Halbieren

ZahlGeteilt durch 2Rest
1151
521
210
101
Von unten gelesen1011

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Auch die Shell liest binär

Befehl
echo $((2#1011))

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele lesen eine Binärzahl von links, als wäre das erste Bit 1 wert. Das stimmt nicht. Das Bit ganz rechts ist 1 wert, und jede Stelle links davon ist doppelt so viel wert. Darum ist 1000 acht und 0001 eins.

Hexadezimal ist eine Kurzschrift für Bits

Lange Reihen aus Bits sind schwer zu lesen. Hexadezimal zählt in Sechzehnern. Nach 0 bis 9 kommen A bis F für zehn bis fünfzehn.

Eine Hex-Ziffer steht für genau vier Bits. Ein Byte sind also immer zwei Hex-Ziffern. Teil das Byte in zwei Hälften zu je vier Bits und schreib jede Hälfte als eine Ziffer.

Beispiel: drei Bytes vom Router

DezimalBinärZwei HälftenHex
60001111000011 ist 3, 1100 ist 123C
166101001101010 ist 10, 0110 ist 6A6
47001011110010 ist 2, 1111 ist 152F

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Shell schreibt 60 hexadezimal

Befehl
printf '%X\n' 60

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Python prüft die anderen zwei

Befehl
python3 -c "print(hex(166), hex(47))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Weiterführend: die ganze Router-Adresse

Die Adresse auf dem Aufkleber hat sechs Bytes: 3C:A6:2F:11:08:9E. Drei davon kennst du schon.

Rechne die anderen drei von Hand in dezimal um. Prüf deine Ergebnisse danach im Terminal, zum Beispiel mit echo $((16#9E)).

Über dieses Lab und seinen Quellcode: Lab für Compilerbau und Rechnerarchitektur: gcc, flex, bison und RISC-V in einer VM

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.