Übungsaufgaben zu Zahlensystemen und Codes: dual, hexadezimal, BCD, Gray-Code, Bitmasken und Adressen

https://bildung.social/@oerinformatik/

https://oer-informatik.de/zahlensysteme-codes-uebungsaufgaben

Zahlensysteme, Dualzahl, Hexadezimalzahl, BCD-Code, Gray-Code, Bit, Bitmaske, Adressbereich, 7-Segment-Anzeige, I2C-Adresse, Übungsaufgaben, Prüfungsvorbereitung

tl/dr; (ca. 57 min Lese- und Bearbeitungszeit): Fünf Übungsaufgaben zu Zahlensystemen und Codes – von Bit, Byte, Dual- und BCD-Darstellung über das Umrechnen mit DIP-Schaltern und das Schieben von Registern bis zu Bitbreiten von Zählern und Drehgebern, Gray-Code, Adressbereichen, I²C- und IPv4-Adressen, Bitmasken und 7-Segment-Codes. Zu jeder Teilaufgabe lässt sich eine Beispiellösung einblenden [AI-Assisted]. (Zuletzt geändert am 12.11.2026)

Diese Übungsaufgaben gehören zum Artikel Zahlensysteme und Codes: dual, hexadezimal, BCD, Gray-Code, Bit und Byte. Wie Bitmuster über Gatter Aktoren schalten, zeigt der Artikel Logische Verknüpfungen.

Wortwolke mit den Fachbegriffen der Übungsaufgaben zu Zahlensystemen und Codes (mit KI erstellt)

Hinweise zur Bearbeitung: Bis zur Teil-1- bzw. Zwischenprüfung der Elektroberufe solltest Du die Basiskompetenz beherrschen, also Aufgabe 1.1. Als EGS oder IEGS musst Du zur Teil-2- bzw. Abschlussprüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das sind Aufgabe 2.1, Aufgabe 2.2, Aufgabe 2.3 und Aufgabe 2.4. Die Beispiellösungen sind immer gleich aufgebaut: Unter Geg. steht, was gegeben ist (bei mehreren Teilaufgaben gemeinsam in der ersten), unter Ges., was gesucht ist. Jede Formel steht zuerst in ihrer Grundform; Umstellungen sind Äquivalenzumformungen, deren Rechenschritt grau rechts neben dem senkrechten Strich steht (Division mit „:“). Einfache Formeln werden römisch nummeriert und ineinander eingesetzt („I in II“), längere Rechnungen nacheinander mit drei signifikanten Stellen. Ergebnisse stehen doppelt unterstrichen, gerundete mit \approx. Schreibe beim Umrechnen immer dazu, in welchem System eine Zahl steht (Index _2, _{10}, _{16} oder Präfix 0x), und gliedere Dualzahlen in Vierergruppen. Bei „nennen“ genügen Stichworte, bei „beschreiben“, „erläutern“ und „begründen“ antwortest Du in ganzen Sätzen. Schreib Deine Lösung zuerst vollständig auf, bevor Du die Beispiellösung einblendest.

Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?

Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.

Erstelle neue Übungsaufgaben zum Thema „Zahlensysteme und Codes: dual,
hexadezimal, BCD, Gray-Code, Bitmasken und Adressen“.

Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.

Fachliche Grundlage:
- https://oer-informatik.de/zahlensysteme-codes
- https://oer-informatik.de/logische-verknuepfungen
- Stilbeispiel: https://oer-informatik.de/zahlensysteme-codes-uebungsaufgaben

Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- Zahlensysteme
- Dualzahl
- Hexadezimalzahl
- BCD-Code
- Gray-Code
- Bit
- Bitmaske
- Adressbereich
- 7-Segment-Anzeige
- I2C-Adresse

Kompetenzstufe: Kernkompetenz (alternativ: Basiskompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan

Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
   abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
   zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
   Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
   Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
   Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
   danach frage.

Aufgabe 1.1: Zählwerk einer Etikettiermaschine (Basiskompetenz)

Eine Etikettiermaschine zählt die beklebten Flaschen. Der Zählerstand wird intern als Dualzahl gespeichert und auf einer dreistelligen Ziffernanzeige ausgegeben, die über BCD-codierte Leitungen angesteuert wird.

a) Wähle die richtige Aussage aus. (2 Punkte)

  1. Ein Byte besteht aus 4 Bit und stellt 16 Werte dar.
  2. Ein Bit ist die kleinste Informationseinheit und kann die Werte 0 und 1 annehmen; 8 Bit bilden ein Byte.
  3. Ein Bit kann die Werte 0 bis 9 annehmen, deshalb reicht ein Bit je Ziffer der Anzeige.
  4. Ein Byte ist die kleinste Informationseinheit; ein Bit fasst 8 Byte zusammen.

Geg.: Zählerstand intern dual, Anzeige über BCD-Leitungen

Ges.: richtige Aussage

Richtig ist Aussage 2 (2 Punkte): Das Bit ist die kleinste Informationseinheit mit den Werten 0 und 1; 8 Bit bilden ein Byte.

  • Aussage 1 ist falsch: 4 Bit sind ein Halbbyte (Nibble); ein Byte hat 8 Bit und stellt 256 Werte dar.
  • Aussage 3 ist falsch: Ein Bit kennt nur 0 und 1; für eine Dezimalziffer braucht man im BCD-Code 4 Bit.
  • Aussage 4 ist falsch: Kleinste Einheit ist das Bit, und ein Byte fasst 8 Bit zusammen – nicht umgekehrt.

b) Der Zähler steht bei 86. Gib diesen Zählerstand als 8-Bit-Dualzahl an. (2 Punkte)

Geg.: Zählerstand 86_{10}

Ges.: 8-Bit-Dualzahl

Zweierpotenzen abziehen (1 Punkt): 86 - 64 = 22, 22 - 16 = 6, 6 - 4 = 2, 2 - 2 = 0 → Einsen bei 64, 16, 4 und 2.

86_{10} = \underline{\underline{0101\,0110_2}}

Ergebnis mit 8 Stellen (1 Punkt). Kontrolle: 64 + 16 + 4 + 2 = 86.

c) Gib an, welche Signale bei diesem Zählerstand an den BCD-Leitungen der beiden rechten Anzeigestellen anliegen. (2 Punkte)

Ges.: Signale an den BCD-Leitungen von Zehner- und Einerstelle

Jede Dezimalziffer wird einzeln in 4 Bit codiert (je Stelle 1 Punkt):

  • Zehnerstelle 8: 1000
  • Einerstelle 6: 0110

86_{10} = \underline{\underline{1000\ 0110_\mathrm{BCD}}}

Die Hunderterstelle zeigt 0 (0000). Der BCD-Wert unterscheidet sich vom Dualwert aus b) (0101 0110).

d) Am Ende einer Schicht misst Du an den zwölf BCD-Leitungen (von der Hunderter- zur Einerstelle, jeweils höchstwertiges Bit links) das Bitmuster 0101 0011 0111. Bestimme den angezeigten Zählerstand. (2 Punkte)

Ges.: angezeigter Zählerstand

Jedes Nibble wird einzeln als Dezimalziffer gelesen (2 Punkte, je falscher Ziffer 1 Punkt Abzug):

BCD-Leitungen am Schichtende (Beispiellösung)
Hunderter Zehner Einer
0101 = 5 0011 = 3 0111 = 7

Angezeigt wird \underline{\underline{537}} Flaschen.

e) Wegen eines Verdrahtungsfehlers liegt an einer Stelle 1011 an. Begründe, warum dieses Bitmuster im BCD-Code nicht vorkommen darf. (1 Punkt)

Ges.: Begründung

Im BCD-Code steht jedes Nibble für eine Dezimalziffer 0 … 9, also 0000 bis 1001. 1011 entspräche dem Wert 11 und ist keine gültige Ziffer (Pseudotetrade); die Anzeige kann ihn nicht sinnvoll darstellen (1 Punkt).

Aufgabe 2.1: Konfiguration eines Feldbusmoduls (Kernkompetenz)

Du nimmst ein Ein-/Ausgabemodul für einen Feldbus in Betrieb. Im Handbuch sind Werte teils dezimal, teils dual, hexadezimal oder BCD-codiert angegeben.

a) Vervollständige die Tabelle. (6 Punkte)

Werte aus dem Modulhandbuch
dezimal dual (8 Bit) hexadezimal BCD
0x3C
1011 0010
200
0100 1001

Geg.: je Zeile ein Wert: \mathrm{3C}_{16}, 1011\,0010_2, 200_{10}, 0100\,1001_\mathrm{BCD}

Ges.: fehlende Darstellungen

Je zwei richtige Zellen 1 Punkt:

Werte aus dem Modulhandbuch (Beispiellösung)
dezimal dual (8 Bit) hexadezimal BCD
60 0011 1100 0x3C 0110 0000
178 1011 0010 0xB2 0001 0111 1000
200 1100 1000 0xC8 0010 0000 0000
49 0011 0001 0x31 0100 1001

Rechenwege: \mathrm{3C}_{16} = 3 \cdot 16 + 12 = 60; 1011\,0010_2 = 128 + 32 + 16 + 2 = 178, die Vierergruppen 1011 und 0010 ergeben B und 2; 200 = 128 + 64 + 8; BCD 0100 1001 = Ziffern 4 und 9 = 49 = 32 + 16 + 1.

b) Die Busadresse des Moduls wird mit einem 8-poligen DIP-Schalter eingestellt. Laut Handbuch ist Schalter 1 das niederwertigste Bit; die Eingänge haben Pull-up-Widerstände, ein Schalter in Stellung ON zieht seinen Eingang also auf Low. Bestimme die Schalterstellungen für die Adresse 0x6D. (3 Punkte)

Geg.: Adresse \mathrm{6D}_{16}; Schalter 1 = Bit 0; ON = Low = 0

Ges.: Schalterstellungen

Umrechnen (1 Punkt): \mathrm{6D}_{16} = 0110\,1101_2.

Zuordnen (1 Punkt) und invertieren, weil ON eine 0 erzeugt (1 Punkt):

DIP-Schalter für die Adresse 0x6D (Beispiellösung)
Schalter 8 7 6 5 4 3 2 1
Bit 7 6 5 4 3 2 1 0
Bitwert 0 1 1 0 1 1 0 1
Stellung ON OFF OFF ON OFF OFF ON OFF

\underline{\underline{\text{Schalter 2, 5 und 8 auf ON, alle anderen auf OFF}}}

c) Die Firmware schiebt den Inhalt eines 8-Bit-Registers mit dem Wert 0x13 um drei Stellen nach links. Gib das Ergebnis dual, hexadezimal und dezimal an und nenne die Rechenoperation, die dem Schieben entspricht. (2 Punkte)

Geg.: Registerinhalt \mathrm{13}_{16}, Linksschieben um n = 3

Ges.: Ergebnis dual, hexadezimal, dezimal; Rechenoperation

\begin{aligned} &\text{(I)} && x_\mathrm{neu} = x \cdot 2^n \end{aligned}

0001 0011 um drei Stellen nach links, rechts werden Nullen nachgeschoben: 1001 1000 (1 Punkt). Es fallen keine Einsen heraus.

x_\mathrm{neu} = 19 \cdot 2^3 = \underline{\underline{152 = 1001\,1000_2 = \mathrm{98}_{16}}}

Das Linksschieben um 3 Stellen entspricht einer Multiplikation mit 2^3 = 8 (1 Punkt).

d) Ein Messwert 0xC8 soll durch 4 geteilt werden. Die Firmware nutzt dafür eine Schiebeoperation statt einer Division. Gib Richtung und Anzahl der Stellen an und bestimme das Ergebnis dezimal. (2 Punkte)

Geg.: Messwert \mathrm{C8}_{16} = 200, Division durch 4

Ges.: Schieberichtung und Stellenzahl; Ergebnis dezimal

\begin{aligned} &\text{(I)} && x_\mathrm{neu} = \frac{x}{2^n}\ \text{(ganzzahlig)} \end{aligned}

Wegen 4 = 2^2 wird um 2 Stellen nach rechts geschoben (1 Punkt): 1100 1000 → 0011 0010.

x_\mathrm{neu} = \frac{200}{4} = \underline{\underline{50}}

(1 Punkt)

e) Erläutere, welches Ergebnis dieselbe Schiebeoperation für den Messwert 0xC9 liefert. (1 Punkt)

Ges.: Ergebnis für \mathrm{C9}_{16} mit Erläuterung

1100 1001 (201) um zwei Stellen nach rechts ergibt ebenfalls 0011 0010 = \underline{\underline{50}}. Die beiden herausgeschobenen Bits 01 gehen verloren; das Rechtsschieben ist eine ganzzahlige Division durch 4, der Rest (201 : 4 = 50 Rest 1) fällt weg (1 Punkt).

Aufgabe 2.2: Bitbreiten an einer Verpackungslinie (Kernkompetenz)

An einer Verpackungslinie werden Kartons gezählt, ein Drehteller positioniert und Temperaturen erfasst. Du sollst die nötigen Bitbreiten festlegen.

a) Ein Binärzähler soll alle Kartons einer Schicht zählen, höchstens 5000 Stück. Berechne die Mindestanzahl der Kippglieder und bestimme den größten Zählerstand, den dieser Zähler darstellen kann. (3 Punkte)

Geg.: höchstens 5000 Kartons, Zählbeginn bei 0

Ges.: Mindestanzahl Kippglieder n; größter Zählerstand

\begin{aligned} &\text{(I)} && 2^n \geq N \\ &\text{(II)} && x_\mathrm{max} = 2^n - 1 \end{aligned}

Mit dem Zählerstand 0 muss der Zähler N = 5001 Stände darstellen (1 Punkt). 2^{12} = 4096 reicht nicht, 2^{13} = 8192 genügt:

n = \lceil \log_2 5001 \rceil = \lceil 12{,}3 \rceil = \underline{\underline{13\ \text{Kippglieder}}}

(1 Punkt) Mit II:

x_\mathrm{max} = 2^{13} - 1 = \underline{\underline{8191}}

(1 Punkt) Wer mit 5000 Ständen rechnet, kommt ebenfalls auf 13 Kippglieder.

b) Der Drehteller hat einen Inkrementaldrehgeber mit einer Winkelauflösung von 0{,}2°. Ein Zähler soll die Position innerhalb einer vollen Umdrehung erfassen. Berechne die Mindest-Bitbreite des Zählers. (3 Punkte)

Geg.: Winkelauflösung \Delta\varphi = 0{,}2°, eine Umdrehung 360°

Ges.: Mindest-Bitbreite n

\begin{aligned} &\text{(I)} && N = \frac{360°}{\Delta\varphi} \\ &\text{(II)} && 2^n \geq N \end{aligned}

I (1 Punkt):

N = \frac{360°}{0{,}2°} = 1800\ \text{Positionen}

I in II (2 Punkte): 2^{10} = 1024 < 1800 \leq 2048 = 2^{11}

n = \underline{\underline{11\ \mathrm{Bit}}}

c) Der Temperatursensor liefert 12-Bit-Werte. Gib die Anzahl der Stufen an und beschreibe, wie sich die Stufenzahl bei einem Sensor mit 13 Bit ändert. (2 Punkte)

Geg.: n = 12\ \mathrm{Bit} bzw. 13\ \mathrm{Bit}

Ges.: Stufenzahl; Änderung

\begin{aligned} &\text{(I)} && N = 2^n \end{aligned}

N_{12} = 2^{12} = \underline{\underline{4096}}\ \text{Stufen}

(1 Punkt) Mit einem Bit mehr verdoppelt sich die Stufenzahl auf 2^{13} = 8192; der Messbereich wird doppelt so fein aufgelöst (1 Punkt).

d) Für eine zweite Station ist ein 4-Bit-Absolutdrehgeber mit Gray-Code vorgesehen.

  • da) Begründe, warum der Hersteller den Gray-Code statt des Dualcodes verwendet. (2 Punkte)
  • db) Wandle den Dualwert 1100 in den Gray-Code um und den Gray-Wert 0111 in eine Dualzahl. (2 Punkte)

Geg.: 4-Bit-Absolutdrehgeber; Dualwert 1100; Gray-Wert 0111

Ges.: Begründung; Gray-Wert; Dualwert

\begin{aligned} &\text{(I)} && G_3 = B_3,\quad G_i = B_{i+1} \oplus B_i \\ &\text{(II)} && B_3 = G_3,\quad B_i = B_{i+1} \oplus G_i \end{aligned}

da) (2 Punkte) Beim Gray-Code unterscheiden sich benachbarte Positionen in genau einem Bit. Liest die Auswertung genau im Übergang zwischen zwei Positionen, kann nur dieses eine Bit unsicher sein; das Ergebnis ist dann eine der beiden Nachbarpositionen. Im Dualcode ändern sich oft mehrere Bits gleichzeitig (z. B. 0111 → 1000). Schalten die Spuren nicht exakt gleichzeitig, entstehen kurzzeitig weit entfernte Fehlwerte.

db) Dual → Gray mit I (1 Punkt): G_3 = 1, G_2 = 1 \oplus 1 = 0, G_1 = 1 \oplus 0 = 1, G_0 = 0 \oplus 0 = 0

1100_2 = \underline{\underline{1010_\mathrm{Gray}}}

Gray → dual mit II (1 Punkt): B_3 = 0, B_2 = 0 \oplus 1 = 1, B_1 = 1 \oplus 1 = 0, B_0 = 0 \oplus 1 = 1

0111_\mathrm{Gray} = \underline{\underline{0101_2 = 5}}

e) An einem Prüfplatz zählen ein 8-Bit-Binärzähler und ein zweistelliger BCD-Zähler dieselben Taktimpulse, beide beginnen bei 0. Gib die Bitmuster beider Zähler nach 37 Impulsen an. (2 Punkte)

Geg.: 37 Taktimpulse, Start bei 0

Ges.: Bitmuster beider Zähler

Je Zähler 1 Punkt:

Zählerstände nach 37 Impulsen (Beispiellösung)
Zähler Rechnung Bitmuster
8-Bit-Binärzähler 37 = 32 + 4 + 1 0010 0101
BCD-Zähler (Zehner, Einer) Ziffern 3 und 7 0011 0111

\underline{\underline{\text{binär: } 0010\,0101 \qquad \text{BCD: } 0011\ 0111}}

Der Binärzähler stellt den ganzen Wert dual dar, der BCD-Zähler jede Dezimalstelle in einer eigenen Dekade.

Aufgabe 2.3: Speicher und Adressen eines Datenloggers (Kernkompetenz)

Ein Datenlogger erfasst Messwerte einer Kältemaschine. Er hat einen Mikrocontroller mit externem Speicher, hängt an einem Sensorbus und meldet seine Daten über das Firmennetz.

a) Der Messwertspeicher belegt den Adressbereich 0x8000 bis 0xBFFF, jede Adresse speichert ein Byte. Berechne die Anzahl der Speicherplätze und gib die Speichergröße in KiB an. (2 Punkte)

Geg.: Adressbereich \mathrm{8000}_{16} … \mathrm{BFFF}_{16}, 1 Byte je Adresse

Ges.: Anzahl der Speicherplätze; Größe in KiB

\begin{aligned} &\text{(I)} && N = A_\mathrm{Ende} - A_\mathrm{Anfang} + 1 \end{aligned}

N = \mathrm{BFFF}_{16} - \mathrm{8000}_{16} + 1 = \mathrm{4000}_{16} = \underline{\underline{16\,384}}

(1 Punkt)

\frac{16\,384\ \mathrm{Byte}}{1024\ \frac{\mathrm{Byte}}{\mathrm{KiB}}} = \underline{\underline{16\ \mathrm{KiB}}}

(1 Punkt)

b) Für die Konfiguration kommt ein Baustein mit 2 KiB hinzu, der ab Adresse 0x5800 eingeblendet wird. Berechne die Mindestanzahl seiner Adressleitungen und gib seine Endadresse hexadezimal an. (4 Punkte)

Geg.: 2\ \mathrm{KiB}, Anfangsadresse \mathrm{5800}_{16}

Ges.: Mindestanzahl Adressleitungen n; Endadresse

\begin{aligned} &\text{(I)} && 2^n \geq N \\ &\text{(II)} && A_\mathrm{Ende} = A_\mathrm{Anfang} + N - 1 \end{aligned}

I (2 Punkte): N = 2 \cdot 1024 = 2048 = 2^{11}

n = \underline{\underline{11\ \text{Adressleitungen}\ (A_0 \dots A_{10})}}

II (2 Punkte): 2048 = \mathrm{800}_{16}

A_\mathrm{Ende} = \mathrm{5800}_{16} + \mathrm{800}_{16} - 1 = \underline{\underline{\mathrm{5FFF}_{16}}}

c) Der Sensorbus arbeitet mit 7-Bit-Adressen. Die Adresse 0 und die Adressen 120 bis 127 sind reserviert. Berechne, wie viele Teilnehmer adressiert werden können. Für eine kleinere Anlage mit 45 Sensoren soll ein Bus mit kürzerer Adresse genügen: Bestimme die dafür mindestens nötige Zahl von Adressbits, wenn dort keine Adressen reserviert sind. (3 Punkte)

Geg.: 7-Bit-Adressen; reserviert: 0 und 120 … 127; kleinere Anlage mit 45 Sensoren

Ges.: nutzbare Adressen; Mindestzahl Adressbits

\begin{aligned} &\text{(I)} && N = 2^n - N_\mathrm{reserviert} \\ &\text{(II)} && 2^n \geq N \end{aligned}

I (2 Punkte): reserviert sind 1 + 8 = 9 Adressen.

N = 2^7 - 9 = 128 - 9 = \underline{\underline{119\ \text{Teilnehmer}}}

II (1 Punkt): 2^5 = 32 < 45 \leq 64 = 2^6 → \underline{\underline{6\ \text{Adressbits}}}

d) Die Meldeeingänge des Datenloggers liest ein Port-Expander am I²C-Bus ein. Laut Datenblatt sind die oberen vier Adressbits fest 0100, die unteren drei werden über die Pins A2, A1, A0 eingestellt. A2 und A1 liegen über Pull-up-Widerstände an High, A0 an GND. Bestimme die 7-Bit-Adresse sowie die Schreib- und die Leseadresse hexadezimal. Ein zweiter, baugleicher Port-Expander soll an denselben Bus: Gib eine passende Beschaltung seiner Adresspins und seine 7-Bit-Adresse an. (4 Punkte)

Geg.: feste Bits 0100; A2 = High, A1 = High, A0 = Low

Ges.: 7-Bit-Adresse; Schreib- und Leseadresse; Beschaltung für einen zweiten Baustein

7-Bit-Adresse (1 Punkt): 0100 + 110 = 010 0110 = \underline{\underline{\mathrm{26}_{16}}}

Schreibadresse, R/W = 0 angehängt (1 Punkt): 0100 1100 = \underline{\underline{\mathrm{4C}_{16}}}

Leseadresse, R/W = 1 angehängt (1 Punkt): 0100 1101 = \underline{\underline{\mathrm{4D}_{16}}}

Zweiter Baustein (1 Punkt): Er braucht eine andere Kombination an A2 A1 A0, z. B. A0 ebenfalls an High: 111 → 7-Bit-Adresse 010 0111 = \underline{\underline{\mathrm{27}_{16}}}. Jede der übrigen sieben Kombinationen ist richtig, wenn die Adresse dazu passt; insgesamt sind 2^3 = 8 gleiche Bausteine an einem Bus möglich.

e) In der Konfigurationsdatei steht die IPv4-Adresse des Datenloggers binär: 00001010.00010100.00000011.11111110. Gib sie in Dezimalschreibweise an. (2 Punkte)

Geg.: IPv4-Adresse binär 00001010.00010100.00000011.11111110

Ges.: Dezimalschreibweise

Jedes Oktett einzeln umrechnen (je falsches Oktett 1 Punkt Abzug):

IPv4-Adresse des Datenloggers (Beispiellösung)
Oktett binär Rechnung dezimal
1 00001010 8 + 2 10
2 00010100 16 + 4 20
3 00000011 2 + 1 3
4 11111110 255 - 1 254

\underline{\underline{10.20.3.254}}

Aufgabe 2.4: Port eines Bedienteils (Kernkompetenz)

Ein Mikrocontroller steuert über Port A die Meldeleuchten eines Bedienteils und über Port B eine einstellige 7-Segment-Anzeige. Im Portregister A steht gerade der Wert 0xA6.

a) Bestimme die Bitmaske und die Verknüpfung, mit der Du abfragst, ob Bit 2 von Port A gesetzt ist, und gib das Ergebnis an. (2 Punkte)

Geg.: Port A = \mathrm{A6}_{16} = 1010\,0110_2

Ges.: Maske, Verknüpfung, Ergebnis für Bit 2

UND-Verknüpfung mit der Maske 0000 0100 = 0x04 (1 Punkt):

  1010 0110   Port A
& 0000 0100   Maske 0x04
-----------
  0000 0100   ungleich 0

Das Ergebnis ist 0x04 ≠ 0, also ist \underline{\underline{\text{Bit 2 gesetzt}}} (1 Punkt).

b) Die Leuchten an Bit 4 bis Bit 7 sollen ausgeschaltet werden, die übrigen sollen bleiben, wie sie sind. Bestimme Maske, Verknüpfung und neuen Portwert hexadezimal. (2 Punkte)

Ges.: Maske, Verknüpfung, neuer Portwert

UND-Verknüpfung mit 0000 1111 = 0x0F (1 Punkt): An den Stellen 4 bis 7 steht in der Maske eine 0, diese Bits werden gelöscht; die Einsen lassen Bit 0 bis 3 unverändert.

1010\,0110 \land 0000\,1111 = 0000\,0110 = \underline{\underline{\mathrm{06}_{16}}}

(1 Punkt)

c) Ausgehend vom ursprünglichen Wert 0xA6 sollen zusätzlich die Leuchten an Bit 0 und Bit 3 eingeschaltet werden. Bestimme Maske, Verknüpfung und neuen Portwert hexadezimal. (2 Punkte)

Ges.: Maske, Verknüpfung, neuer Portwert

ODER-Verknüpfung mit 0000 1001 = 0x09 (1 Punkt): Die Einsen setzen Bit 0 und Bit 3, die Nullen lassen die übrigen Bits unverändert.

1010\,0110 \lor 0000\,1001 = 1010\,1111 = \underline{\underline{\mathrm{AF}_{16}}}

(1 Punkt)

d) An Port B ist die 7-Segment-Anzeige mit gemeinsamer Kathode angeschlossen. Wegen der Leiterbahnführung ist die Reihenfolge ungewöhnlich: Segment g an Bit 0, f an Bit 1, e an Bit 2, d an Bit 3, c an Bit 4, b an Bit 5, a an Bit 6, der Dezimalpunkt an Bit 7. Ermittle die hexadezimalen Portwerte für die Zeichen „4“, „7“ und „F“ (ohne Dezimalpunkt). (3 Punkte)

Geg.: gemeinsame Kathode (Segment leuchtet bei 1); g = Bit 0, f = Bit 1, e = Bit 2, d = Bit 3, c = Bit 4, b = Bit 5, a = Bit 6, dp = Bit 7

Ges.: Portwerte für „4“, „7“, „F“

Je Zeichen 1 Punkt:

Portwerte für die 7-Segment-Anzeige (Beispiellösung)
Zeichen leuchtende Segmente Bitmuster (Bit 7 … 0) Portwert
4 b, c, f, g 0011 0011 0x33
7 a, b, c 0111 0000 0x70
F a, e, f, g 0100 0111 0x47

\underline{\underline{\text{„4“} = \mathrm{33}_{16},\ \text{„7“} = \mathrm{70}_{16},\ \text{„F“} = \mathrm{47}_{16}}}

Die Ziffer 7 wird manchmal zusätzlich mit Segment f dargestellt (0x72); das ist ebenfalls richtig, wenn es begründet wird.

e) Im Ersatzteillager gibt es nur eine baugleiche Anzeige mit gemeinsamer Anode. Erläutere, was sich an den Portwerten ändert, und gib den Portwert für die Ziffer „4“ an. (2 Punkte)

Ges.: Änderung; Portwert für „4“

Bei gemeinsamer Anode leuchtet ein Segment, wenn sein Ausgang Low führt. Alle Bitmuster müssen deshalb invertiert werden (1 Punkt):

\overline{0011\,0011} = 1100\,1100 = \underline{\underline{\mathrm{CC}_{16}}}

(1 Punkt) Rechnerisch ist das ein Exklusiv-ODER mit 0xFF. Auch der Dezimalpunkt (Bit 7) muss dann auf 1 stehen, damit er dunkel bleibt.


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: “Übungsaufgaben zu Zahlensystemen und Codes: dual, hexadezimal, BCD, Gray-Code, Bitmasken und Adressen” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/zahlensysteme-codes-uebungsaufgaben 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: 12.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: