stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 274

Tag 274 von 365 · Experte · Monat 10: Bits und Daten

Binär und hexadezimal denken

Bits und Stellenwerte, Hex als Kurzschrift für vier Bits, Binär- und Hexliterale mit Unterstrich und die 53-Bit-Grenze der Register.

Lektion 15 Min. Woche 40

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:

Bit76543210
Wert1286432168421

%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ärHexDezimal
%1010_0111$A7167
%1111_1111$FF255
%1_0000_0000$100256

$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.

Achtung

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?

Tipp

% 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

Die Registerbank des Chips r0 42 r1 31 r2 10 r3 -2.5 r4 0 r5 0 r6 0 r7 0 r8 0 r9 0 r10 0 r11 0 r12 0 r13 0 r14 0 r15 0 sp = r16 ra = r17 16 freie Register, je eine Zahl sp: Stapelzeiger · ra: Rücksprungadresse
Register speichern Kommazahlen. Ganze Zahlen sind darin exakt bis 2^53.

Ü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 $100 geschrieben

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

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall