Das lernst du heute
- Bits und Stellenwerte
- Hex als Kurzschrift
- 53 Bit Genauigkeit
Zwölf Lampen, zwölf Ja-oder-nein-Werte. Bisher hast du für jeden ein eigenes Register genommen, und bei sechzehn Registern ist schnell Schluss. In einer einzigen Zahl stecken aber viel mehr Ja-oder-nein-Werte, wenn du sie als Bits liest. Die Experten-Stufe beginnt deshalb mit dem Blick in die Zahl hinein.
Stellenwerte
Eine Binärzahl hat nur die Ziffern 0 und 1. Jede Stelle ist doppelt so viel wert wie die rechts daneben:
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Wert | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
%1010_0111 ist also 128 + 32 + 4 + 2 + 1 = 167. Bit 0 steht immer rechts. Die Unterstriche ignoriert der Chip, sie machen lange Zahlen lesbar.
Hex als Kurzschrift
Vier Bits ergeben 16 Möglichkeiten, genau eine Hex-Ziffer von 0 bis F. Deshalb ist Hex die Kurzschrift für Binärzahlen:
| Binär | Hex | Dezimal |
|---|---|---|
%1010_0111 | $A7 | 167 |
%1111_1111 | $FF | 255 |
%1_0000_0000 | $100 | 256 |
$A7 liest du als „A = 1010, 7 = 0111“. Jede Hex-Ziffer steht für genau vier Bits.
move r0 %1010_0111 # 167
move r1 $A7 # dieselbe Zahl
move r2 $FF_FF # 65535, Unterstrich auch hier
Stellen ohne Bitbefehle
Bevor morgen die Bitbefehle kommen: Mit div, floor und mod kommst du auch an einzelne Stellen. Durch 16 teilen schiebt eine Hex-Ziffer nach rechts, mod 16 behält die letzte:
div hoch zahl 16
floor hoch hoch # obere Hex-Ziffer
mod tief zahl 16 # untere Hex-Ziffer
Genauso holst du Bit 3: durch 8 teilen, abrunden, mod 2.
53 Bit Genauigkeit
Register speichern Kommazahlen. Ganze Zahlen sind darin exakt, aber nur bis 2^53 = 9 007 199 254 740 992. Darüber gehen die letzten Stellen verloren: 2^53 + 1 lässt sich nicht speichern und wird zu 2^53.
Für Hashes reicht das locker, sie sind 32-Bit-Zahlen. Wer aber viele Werte in eine Zahl packt, stößt an die 53 Bit. Plane gepackte Werte deshalb immer mit Bitzahl: Wie viele Bits braucht jedes Feld, und passt die Summe in 53?
% und $ wandelt der Präprozessor beim Laden in Dezimalzahlen um. Für das Zeichenlimit zählt aber die geschriebene Form: %1111_1111 kostet zehn Zeichen, 255 nur drei.
Schaubild
Übung
Aufgabe
In zahl (r0) steht eine Zahl von 0 bis 255. Ohne Bitbefehle:
hoch= obere Hex-Ziffer (0–15)tief= untere Hex-Ziffer (0–15)bit3= Bit 3 der Zahl (0 oder 1)plus= zahl + 256, die 256 als Hex-Literal$100geschrieben
Hinweise
Hinweis 1
Obere Hex-Ziffer: div durch 16, dann floor.
Hinweis 2
Untere Hex-Ziffer: mod … 16.
Hinweis 3
Bit 3: durch 8, abrunden, mod 2. Für plus: add plus zahl $100.
Quiz
5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden