Zahlensysteme und Codes: dual, hexadezimal, BCD, Gray-Code, Bit und Byte
https://bildung.social/@oerinformatik/
https://oer-informatik.de/zahlensysteme-codes
Zahlensysteme, Dualzahl, Hexadezimalzahl, BCD-Code, Gray-Code, Bit, Byte, Bitmaske, Adressbereich, 7-Segment-Anzeige, I2C-Adresse, IPv4-Adresse
tl/dr; (ca. 18 min Lesezeit): Mikrocontroller, Zähler, Sensoren und Bussysteme rechnen mit Nullen und Einsen. Dieser Artikel erklärt Schritt für Schritt Bit und Byte, das Umrechnen zwischen dezimal, dual und hexadezimal, die Frage, wie viele Werte in n Bit passen, Adressen und Adressbereiche, Bitmasken und das Schieben von Registern sowie die Codes BCD, Gray und 7-Segment [AI-Assisted]. (Zuletzt geändert am 11.11.2026)
Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.
Als Digitaltechnik-Grundlagen kann ich nach Durcharbeiten des Artikels…
… das Bit als kleinste Informationseinheit benennen und Bit, Byte und Datenwort unterscheiden.
… Zahlen im Dual- und BCD-Code darstellen und BCD-codierte Anzeigen auswerten.
… Zahlen zwischen dezimaler, dualer, hexadezimaler und BCD-Darstellung umrechnen und daraus die Stellung von DIP-Schaltern oder Jumpern bestimmen.
… die Anzahl darstellbarer Werte bei n Bit bestimmen und die nötige Bitzahl bzw. Stufenzahl für Zähler, Drehgeber und Umsetzer berechnen.
… die Mindestanzahl von Adressleitungen und Adressbits berechnen, Adressbereiche hexadezimal angeben und die Zahl der Speicherplätze zwischen zwei Adressen bestimmen.
… die Geräteadresse eines I²C-Bausteins aus festen Bits, Adresspins und R/W-Bit bestimmen und IPv4-Adressen binär und dezimal angeben.
… einzelne Bits eines Registers mit Bitmasken abfragen, setzen und löschen und die Wirkung des Schiebens um n Stellen angeben.
… die Hexadezimalwerte zur Ansteuerung einer 7-Segment-Anzeige ermitteln und Binär- und BCD-Zählerstände unterscheiden.
Darüber hinaus kann ich als Digitaltechnik-Expertenwissen…
- … Dualzahlen in den Gray-Code umwandeln und begründen, warum Absolutdrehgeber den Gray-Code nutzen.
Eine LED-Anzeige zeigt „181“, im Datenblatt des Mikrocontrollers steht 0xB5, und am Logikanalysator siehst Du das Bitmuster 1011 0101. Gemeint ist jedes Mal dieselbe Zahl – nur in unterschiedlicher Schreibweise. Wer Datenblätter liest, Register beschreibt, DIP-Schalter einstellt oder einen Bus in Betrieb nimmt, muss zwischen diesen Darstellungen sicher hin- und herwechseln können.
Das folgende Bild zeigt die Zahl 181 in vier Darstellungen: als Dualzahl mit ihren Stellenwerten, als Hexadezimalzahl aus zwei Halbbytes und im BCD-Code, in dem jede Dezimalziffer ihre eigenen vier Bit bekommt.
Zum Üben gibt es einen eigenen Artikel mit Aufgaben und einblendbaren Beispiellösungen: Übungsaufgaben zu Zahlensystemen und Codes.
Schritt 1: Bit, Byte und Datenwort
Digitale Schaltungen kennen nur zwei Zustände: Spannung liegt an (High, 1) oder nicht (Low, 0). Eine solche Ja/Nein-Information heißt Bit (von binary digit); es ist die kleinste Informationseinheit der Datenverarbeitung. Mehrere Bits werden zu größeren Einheiten zusammengefasst:
| Einheit | Umfang | Beispiel |
|---|---|---|
| Bit | 1 Stelle, 0 oder 1 |
Zustand eines Endschalters |
| Nibble (Halbbyte, Tetrade) | 4 Bit | eine Hexadezimalziffer, eine BCD-Ziffer |
| Byte | 8 Bit | Inhalt eines 8-Bit-Ports, ein Zeichen im ASCII-Code |
| Datenwort | 16, 32 oder 64 Bit (je nach System) | Register eines 32-Bit-Mikrocontrollers |
Die Bits eines Bytes werden von rechts nach links mit 0 bis 7 nummeriert. Bit 0 hat den kleinsten Stellenwert und heißt LSB (least significant bit), Bit 7 den größten und heißt MSB (most significant bit). In Datenblättern steht dafür oft D0 … D7, A0 … A15 (Adressleitungen) oder PB0 … PB7 (Portpins).
Bei Speichergrößen ist Vorsicht geboten: Das Kilobyte \mathrm{kB} bedeutet nach SI genau 1000\,\mathrm{Byte}, das Kibibyte \mathrm{KiB} dagegen 2^{10} = 1024\,\mathrm{Byte}. Speicherbausteine sind immer in Zweierpotenzen organisiert; viele Datenblätter schreiben trotzdem „kB“ und meinen 1024 Byte.
Schritt 2: Umrechnen zwischen dezimal, dual und hexadezimal
Alle drei Systeme sind Stellenwertsysteme: Jede Stelle hat einen Wert, der eine Potenz der Basis ist. Die Stelle ganz rechts hat den Wert b^0 = 1, die nächste b^1, dann b^2 und so weiter.
| System | Basis | Ziffern | Schreibweisen für 181 |
|---|---|---|---|
| Dezimalsystem | 10 | 0 … 9 | 181, 181_{10} |
| Dualsystem (Binärsystem) | 2 | 0, 1 | 1011\,0101_2, 0b10110101 |
| Hexadezimalsystem | 16 | 0 … 9, A … F | \mathrm{B5}_{16}, \mathrm{B5_h}, 0xB5 |
Dual oder hexadezimal nach dezimal
Du multiplizierst jede Ziffer mit ihrem Stellenwert und addierst:
1011\,0101_2 = 1 \cdot 128 + 0 \cdot 64 + 1 \cdot 32 + 1 \cdot 16 + 0 \cdot 8 + 1 \cdot 4 + 0 \cdot 2 + 1 \cdot 1 = 181
\mathrm{B5}_{16} = 11 \cdot 16^1 + 5 \cdot 16^0 = 176 + 5 = 181
Bei Dualzahlen genügt es, die Stellenwerte der Einsen zu addieren. Die Zweierpotenzen bis 2^{10} = 1024 solltest Du auswendig kennen.
Dezimal nach dual
Es gibt zwei gebräuchliche Wege:
Zweierpotenzen abziehen: Ziehe von der Zahl die größte Zweierpotenz ab, die hineinpasst, und schreibe an diese Stelle eine
1. Wiederhole das mit dem Rest. 181 - 128 = 53, 53 - 32 = 21, 21 - 16 = 5, 5 - 4 = 1, 1 - 1 = 0 → Einsen bei 128, 32, 16, 4 und 1.Restwertmethode: Teile fortlaufend durch 2 und notiere die Reste. Von unten nach oben gelesen ergeben sie die Dualzahl.
| Rechnung | Ergebnis | Rest |
|---|---|---|
| 181 : 2 | 90 | 1 (LSB) |
| 90 : 2 | 45 | 0 |
| 45 : 2 | 22 | 1 |
| 22 : 2 | 11 | 0 |
| 11 : 2 | 5 | 1 |
| 5 : 2 | 2 | 1 |
| 2 : 2 | 1 | 0 |
| 1 : 2 | 0 | 1 (MSB) |
Für dezimal nach hexadezimal funktioniert die Restwertmethode genauso mit dem Teiler 16. Meist ist es aber einfacher, erst ins Dualsystem und dann weiter umzurechnen.
Dual und hexadezimal ineinander umrechnen
Weil 16 = 2^4 ist, entspricht jede Hexadezimalziffer genau vier Bit. Du teilst die Dualzahl von rechts in Vierergruppen und ersetzt jede Gruppe durch ihre Hexziffer – umgekehrt schreibst Du für jede Hexziffer vier Bit:
\underbrace{1011}_{\mathrm{B}}\ \underbrace{0101}_{5}{}_2 = \mathrm{B5}_{16}
| dezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dual | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| hexadezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Deshalb sind Hexadezimalzahlen die bevorzugte Kurzschreibweise für Bitmuster: Ein Byte sind genau zwei Hexziffern, eine 16-Bit-Adresse genau vier.
Bitmuster mit DIP-Schaltern und Jumpern einstellen
Viele Baugruppen erhalten ihre Adresse oder Konfiguration über DIP-Schalter oder Jumper. Jeder Schalter steht für ein Bit. Um einen vorgegebenen Wert einzustellen, gehst Du so vor:
- Wert in eine Dualzahl mit so vielen Stellen umrechnen, wie es Schalter gibt (führende Nullen ergänzen).
- Im Datenblatt nachsehen, welcher Schalter welches Bit ist (oft ist Schalter 1 das LSB) und ob „ON“ eine
1oder eine0bedeutet. Bei Eingängen mit Pull-up-Widerstand zieht ein geschlossener Schalter die Leitung auf Low – „ON“ ist dann eine0. - Bits den Schaltern zuordnen und die Stellung notieren.
Beispiel: Ein 8-poliger DIP-Schalter (Schalter 1 = Bit 0, ON = 1) soll den Wert 0x2C einstellen. \mathrm{2C}_{16} = 0010\,1100_2, also stehen die Schalter 3, 4 und 6 auf ON, alle anderen auf OFF.
Schritt 3: Wie viele Werte passen in n Bit?
Mit einem Bit lassen sich 2 Zustände unterscheiden, mit zwei Bit 4, mit drei Bit 8. Allgemein gilt für n Bit:
N = 2^n \qquad \text{größter vorzeichenloser Wert:}\ 2^n - 1
Jedes zusätzliche Bit verdoppelt die Zahl der darstellbaren Werte:
| Bitzahl n | 1 | 4 | 8 | 10 | 12 | 16 |
|---|---|---|---|---|---|---|
| darstellbare Werte 2^n | 2 | 16 | 256 | 1024 | 4096 | 65 536 |
| größter Wert 2^n - 1 | 1 | 15 | 255 | 1023 | 4095 | 65 535 |
Oft ist die Frage umgekehrt: Wie viele Bit brauche ich, um N verschiedene Werte (Zählerstände, Positionen, Adressen) zu unterscheiden? Dann suchst Du die kleinste Zweierpotenz, die mindestens N ist:
2^n \geq N \quad\Rightarrow\quad n = \lceil \log_2 N \rceil
Die Klammern \lceil\ \rceil bedeuten „auf die nächste ganze Zahl aufrunden“. Für \log_2 N rechnest Du auf dem Taschenrechner \frac{\lg N}{\lg 2}.
Typische Anwendungen:
- Binärzähler: Jede Zählstufe ist ein Kippglied (Flipflop) und speichert ein Bit. Ein Zähler, der bis 1000 zählen soll, braucht wegen 2^9 = 512 < 1001 \leq 1024 = 2^{10} mindestens 10 Kippglieder (mit dem Zählerstand 0 sind es 1001 Werte). Ein Zähler mit n Stufen erreicht höchstens 2^n - 1.
- Inkrementaldrehgeber: Löst ein Geber eine Umdrehung in 0{,}5° auf, gibt es \frac{360°}{0{,}5°} = 720 Positionen; der Zähler braucht \lceil \log_2 720 \rceil = 10 Bit.
- A/D-Umsetzer: Ein Umsetzer mit n Bit teilt seinen Messbereich in 2^n Stufen. Ein 10-Bit-Umsetzer unterscheidet 1024 Stufen, ein 12-Bit-Umsetzer viermal so viele – er löst entsprechend feiner auf. Wie Du aus der Stufenzahl die Spannung je Stufe (LSB) und den Digitalwert berechnest, zeigt der Artikel A/D- und D/A-Umsetzer.
Schritt 4: Adressen und Adressbereiche
Speicherbausteine, Register und Busteilnehmer werden über Adressen angesprochen. Mit n Adressleitungen A_0 \dots A_{n-1} lassen sich 2^n Speicherstellen auswählen.
- Anzahl adressierbarer Stellen: Ein Adressbus von A_0 bis A_{15} hat 16 Leitungen und adressiert 2^{16} = 65\,536 Stellen (64 KiB bei 1 Byte je Stelle).
- Mindestzahl der Adressleitungen: Ein Speicher mit 8 KiB = 8192 = 2^{13} Byte braucht 13 Adressleitungen (A_0 \dots A_{12}).
- Speicherplätze zwischen zwei Adressen: Anzahl = Endadresse - Anfangsadresse + 1. Das „+ 1“ wird oft vergessen, weil die Anfangsadresse selbst mitzählt.
- Endadresse: Endadresse = Anfangsadresse + Anzahl - 1.
Beispiel: Ein Baustein belegt den Bereich 0x2000 bis 0x2FFF. \mathrm{2FFF}_{16} - \mathrm{2000}_{16} + 1 = \mathrm{1000}_{16} = 4096 Speicherplätze, also 4 KiB. Im Dualsystem sieht man, warum: Die oberen vier Adressbits sind fest 0010, die unteren zwölf laufen von 0000 0000 0000 bis 1111 1111 1111. Genau diese festen oberen Bits wertet ein Adressdecoder aus, um den Baustein freizugeben – mehr dazu im Artikel Halbleiterspeicher.
Adressbits für Busteilnehmer
Für Bussysteme gilt dieselbe Rechnung: Sollen 50 Teilnehmer eine eigene Adresse bekommen, reichen 5 Bit (32 Adressen) nicht, 6 Bit (64 Adressen) genügen. Viele Busse reservieren einzelne Adressen, z. B. für Broadcast-Nachrichten, Konfiguration oder spätere Erweiterungen. Die nutzbare Zahl ist dann 2^n minus die Zahl der reservierten Adressen.
Die Adresse eines I²C-Bausteins
Am I²C-Bus hat jeder Baustein eine 7-Bit-Adresse. Meist sind einige Bits vom Hersteller fest vorgegeben, die übrigen werden über Adresspins (A0, A1, A2) mit Pull-up/Pull-down-Widerständen oder Jumpern eingestellt. Bei der Übertragung folgt auf die 7 Adressbits das R/W-Bit (0 = schreiben, 1 = lesen); zusammen ergibt das ein Byte.
Beispiel: Ein Baustein hat die festen Bits 1010, an A2 A1 A0 liegen 0 1 1.
- 7-Bit-Adresse:
101 0011= \mathrm{53}_{16} - Schreibadresse (R/W = 0):
1010 0110= \mathrm{A6}_{16} - Leseadresse (R/W = 1):
1010 0111= \mathrm{A7}_{16}
Datenblätter geben teils die 7-Bit-Adresse, teils die 8-Bit-Schreib- und Leseadresse an – achte darauf, welche gemeint ist. Mit 3 einstellbaren Adresspins können 2^3 = 8 gleiche Bausteine am selben Bus betrieben werden. Wie die Adresse auf dem Bus übertragen und im Oszillogramm abgelesen wird, beschreibt der Artikel Serielle Schnittstellen: I²C, SPI und UART.
IPv4-Adressen
Auch Netzwerkadressen sind Bitmuster: Eine IPv4-Adresse besteht aus 32 Bit, die in vier Bytes (Oktette) zerlegt und jeweils dezimal geschrieben werden. Beispiel:
\underbrace{1100\,0000}_{192}.\underbrace{1010\,1000}_{168}.\underbrace{0000\,1010}_{10}.\underbrace{0010\,0101}_{37}
Jedes Oktett rechnest Du für sich um. Jedes liegt im Bereich 0 … 255.
Schritt 5: Bitmasken und Schieben
In Mikrocontrollern steuert oft ein einziges Byte acht Ausgänge. Um ein Bit zu ändern oder abzufragen, ohne die anderen zu beeinflussen, verknüpfst Du den Registerinhalt bitweise mit einer Bitmaske:
| Ziel | Verknüpfung | Maske | Wirkung |
|---|---|---|---|
| Bit abfragen | UND (AND) | 1 an der gefragten Stelle, sonst 0 |
Ergebnis ungleich 0 → Bit ist gesetzt |
| Bits löschen (ausblenden) | UND (AND) | 0 an den zu löschenden Stellen, sonst 1 |
gelöschte Bits werden 0, die übrigen bleiben |
| Bits setzen | ODER (OR) | 1 an den zu setzenden Stellen |
gesetzte Bits werden 1, die übrigen bleiben |
| Bits umschalten | Exklusiv-ODER (XOR) | 1 an den umzuschaltenden Stellen |
diese Bits werden invertiert |
Beispiel: Das Statusregister eines Sensors enthält 1101 0010. Ist Bit 3 gesetzt?
1101 0010 Registerinhalt
& 0000 1000 Maske für Bit 3 (0x08)
-----------
0000 0000 Ergebnis 0 → Bit 3 ist nicht gesetzt
Soll dagegen Bit 0 gesetzt werden, verknüpfst Du mit 0000 0001 (ODER) und erhältst 1101 0011. Mit der Maske 1111 0000 (UND) blendest Du das untere Halbbyte aus und erhältst 1101 0000. Wie UND-, ODER- und Exklusiv-ODER-Gatter arbeiten und wie Du das Bitmuster bestimmst, das über eine Gatterschaltung einen Aktor schaltet, erklärt der Artikel Logische Verknüpfungen.
Schieben um n Stellen
Schiebt ein Schieberegister oder ein Befehl wie << bzw. >> den Inhalt um n Stellen, ändert sich der Wert um den Faktor 2^n – genau wie das Anhängen einer Null im Dezimalsystem mit 10 multipliziert:
- Linksschieben um n Stellen (rechts werden Nullen nachgeschoben): Multiplikation mit 2^n.
0000 1011(11) um 1 nach links:0001 0110(22). - Rechtsschieben um n Stellen (links werden Nullen nachgeschoben): ganzzahlige Division durch 2^n; herausgeschobene Bits gehen verloren.
0000 1011(11) um 1 nach rechts:0000 0101(5), der Rest 1 ist weg.
Das gilt nur, solange beim Linksschieben keine Einsen links aus dem Register herausfallen – sonst läuft das Register über und das Ergebnis stimmt nicht mehr.
Schritt 6: Codes – BCD, Gray-Code und 7-Segment
Ein Code ordnet Zeichen oder Zahlen ein festes Bitmuster zu. Das Dualsystem ist ein Code unter mehreren; je nach Anwendung sind andere günstiger.
BCD-Code
Im BCD-Code (binary coded decimal, 8-4-2-1-Code) bekommt jede Dezimalziffer ihre eigenen vier Bit. 181 wird also nicht als Ganzes umgerechnet, sondern Ziffer für Ziffer:
181 \;\rightarrow\; \underbrace{0001}_{1}\ \underbrace{1000}_{8}\ \underbrace{0001}_{1}{}_\mathrm{BCD}
Zum Auswerten einer BCD-codierten Anzeige liest Du jedes Nibble einzeln als Dezimalziffer. Die Kombinationen 1010 bis 1111 (10 bis 15) kommen im BCD-Code nicht vor (Pseudotetraden). BCD braucht mehr Bit als die Dualzahl (181 dual: 8 Bit, BCD: 12 Bit), lässt sich aber ohne Umrechnung direkt auf Ziffernanzeigen, BCD-Drehschalter und Kodierschalter übertragen.
Der Unterschied zeigt sich auch an Zählern: Nach 25 Taktimpulsen zeigt ein Binärzähler 0001 1001 (25 dual), ein zweistelliger BCD-Zähler dagegen 0010 0101 (Ziffern 2 und 5). Der BCD-Zähler springt nach 1001 auf 0000 und gibt einen Übertrag an die nächste Dekade weiter.
Gray-Code
Beim Zählen im Dualsystem ändern sich manchmal mehrere Bits gleichzeitig, z. B. von 7 (0111) nach 8 (1000) alle vier. Liest ein Absolutdrehgeber genau im Übergang ab und schalten die Spuren nicht exakt gleichzeitig, entstehen kurzzeitig falsche Werte. Der Gray-Code vermeidet das: Benachbarte Werte unterscheiden sich in genau einem Bit. Ein Lesefehler im Übergang ergibt dann höchstens den Nachbarwert.
| dezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| dual | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
| Gray | 000 | 001 | 011 | 010 | 110 | 111 | 101 | 100 |
Umrechnung dual → Gray: Das höchste Bit bleibt gleich; jedes weitere Gray-Bit ist das Exklusiv-ODER des Dualbits mit seinem linken Nachbarn (G_i = B_{i+1} \oplus B_i). Für 5 (101): G_2 = 1, G_1 = 1 \oplus 0 = 1, G_0 = 0 \oplus 1 = 1 → Gray 111. Zurück rechnest Du von links: Das höchste Dualbit ist das höchste Gray-Bit, jedes weitere Dualbit ist B_i = B_{i+1} \oplus G_i.
7-Segment-Code
Eine 7-Segment-Anzeige setzt Ziffern aus den Segmenten a bis g (und einem Dezimalpunkt dp) zusammen. Hängt jedes Segment an einem Pin eines 8-Bit-Ports, ist das Zeichen ein Bitmuster, das Du hexadezimal ins Portregister schreibst. Welches Bit zu welchem Segment gehört, legt die Verdrahtung fest.
Vorgehen:
- Segmente bestimmen, die für das Zeichen leuchten müssen (für „2“: a, b, d, e, g).
- Die zugehörigen Bits laut Verdrahtung auf
1setzen, alle anderen auf0– hier a = Bit 0 bis g = Bit 6, dp = Bit 7:0101 1011. - Hexadezimal notieren:
0x5B. - Art der Anzeige beachten: Bei gemeinsamer Kathode leuchtet ein Segment bei High (
1). Bei gemeinsamer Anode leuchtet es bei Low, das Bitmuster wird invertiert:1010 0100=0xA4.
Liegt zwischen Port und Anzeige ein BCD-zu-7-Segment-Decoder, schreibst Du stattdessen nur den BCD-Wert der Ziffer (4 Bit); der Decoder erzeugt die Segmentsignale selbst.
Ein weiterer verbreiteter Code ist ASCII: Er ordnet Buchstaben, Ziffern und Steuerzeichen 7-Bit-Werte zu, z. B. „A“ = \mathrm{41}_{16} und die Ziffer „0“ = \mathrm{30}_{16}.
Wie geht es weiter?
Zahlensysteme und Codes sind das Werkzeug für fast alle Themen der Digitaltechnik und Mikrocontrollertechnik:
Aufgaben zu allen Schritten dieses Artikels: Übungsaufgaben zu Zahlensystemen und Codes
Gatter, Wahrheitstabellen und Codierer: Logische Verknüpfungen
Auflösung, LSB und Digitalwert von Umsetzern: A/D- und D/A-Umsetzer
Speicherorganisation und Adressdecoder: Halbleiterspeicher
Adressen und Datenverlauf am Bus: Serielle Schnittstellen: I²C, SPI und UART
Adressierung in Feldbussen und Netzwerken: Datenübertragung
Leitfragen
- Was ist ein Bit, und wie viele Bit hat ein Byte?
Ein Bit ist die kleinste Informationseinheit mit den Zuständen 0 und 1; ein Byte fasst 8 Bit zusammen und stellt 256 Werte dar. siehe Abschnitt „Schritt 1: Bit, Byte und Datenwort“
- Wie rechnest Du eine Dualzahl in eine Hexadezimalzahl um?
Du teilst die Dualzahl von rechts in Vierergruppen und ersetzt jede Gruppe durch die passende Hexziffer 0 … F. siehe Abschnitt „Dual und hexadezimal ineinander umrechnen“
- Wie viele Bit braucht ein Zähler, der 3000 verschiedene Stände unterscheiden soll?
Die kleinste Zweierpotenz, die mindestens 3000 ist, ist 2^{12} = 4096; der Zähler braucht also 12 Bit bzw. 12 Kippglieder. siehe Abschnitt „Schritt 3: Wie viele Werte passen in n Bit?“
- Wie berechnest Du die Anzahl der Speicherplätze zwischen zwei Adressen?
Endadresse minus Anfangsadresse plus 1, weil die Anfangsadresse mitzählt. siehe Abschnitt „Schritt 4: Adressen und Adressbereiche“
- Wie setzt Du ein einzelnes Bit eines Ports, ohne die anderen zu verändern, und wie fragst Du es ab?
Setzen mit einer ODER-Verknüpfung und einer Maske, die nur an dieser Stelle eine 1 hat; abfragen mit einer UND-Verknüpfung mit derselben Maske – ist das Ergebnis ungleich 0, ist das Bit gesetzt. siehe Abschnitt „Schritt 5: Bitmasken und Schieben“
- Was bewirkt das Linksschieben eines Registerinhalts um drei Stellen?
Der Wert wird mit 2^3 = 8 multipliziert, solange keine Einsen links herausfallen. siehe Abschnitt „Schieben um n Stellen“
- Worin unterscheiden sich BCD-Code und Dualzahl, und woran erkennst Du einen BCD-Zählerstand?
Im BCD-Code wird jede Dezimalziffer einzeln in 4 Bit codiert, die Dualzahl stellt den ganzen Wert dar. In einem BCD-Zählerstand kommt kein Nibble über 1001 vor. siehe Abschnitt „BCD-Code“
- Warum nutzen Absolutdrehgeber den Gray-Code?
Benachbarte Werte unterscheiden sich nur in einem Bit, sodass ein Ablesen im Übergang höchstens den Nachbarwert liefert und keine weit entfernten Fehlwerte entstehen. siehe Abschnitt „Gray-Code“
- Wie ermittelst Du den Portwert für ein Zeichen auf einer 7-Segment-Anzeige mit gemeinsamer Anode?
Leuchtende Segmente bestimmen, laut Verdrahtung die Bits setzen, das Bitmuster invertieren (Segmente leuchten bei Low) und hexadezimal notieren. siehe Abschnitt „7-Segment-Code“
Links und weitere Informationen
als Nachschlagewerk: Wikipedia: Dualsystem
zum Vertiefen: Wikipedia: Gray-Code
zum Nachschlagen der Codes: Wikipedia: BCD-Code
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Zahlensysteme und Codes: dual, hexadezimal, BCD, Gray-Code, Bit und Byte” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/zahlensysteme-codes veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/elektrotechnik/digitaltechnik. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 11.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
