Zahlensysteme

Du zählst und rechnest gewöhnlich im Dezimalsystem (Zehnersystem): Du kennst die zehn Ziffern 0 bis 9 – und du weisst, dass bei mehrstelligen Zahlen jede zusätzliche Stelle von rechts nach links zehn mal mehr wert ist.

Hier betrachten wir andere Zahlensysteme, insbesondere das Binärsystem und das Hexadezimalsystem.

Neben dem Zehnersystem könnten wir auch in Stellenwertsystemen mit anderer Basis zählen und rechnen – zum Beispiel im Oktalsystem mit Basis 8 oder im Vigesimalsystem mit der Basis 20. Das Binärsytem und das Hexadezimalsystem sind in der Informatik von besonderer Bedeutung:

  • Computer und andere digitale Geräte kennen nur die Zustände 0 und 1. Sie rechnen im Binärsytem, in dem alle Zahlen mit diesen zwei Ziffern, 0 und 1, dargestellt und berechnet werden können.
  • Das Hexadezimalsystem besteht aus den Ziffern 0 bis 9 und zusätzlich aus den Ziffern A…F, hat also 16 Ziffern (von griech. hexa „sechs“ und lat. decem „zehn“). Wozu ist das gut? Die Antwort: Für Menschen, die mit Computern arbeiten:
    • Jede vierstellige Binärzahl lässt sich durch eine einzige Ziffer im Hexadezimalsystem darstellen:
    • Die grösste vierstellige Binärzahl 1111 passt genau in die grösste einstellige Hexadezimalzahl F (weil 16 ist eine 2er-Potenz ist: 24 = 16).
    • Das heisst: Im Hexadezimalsystem können Binärzahlen sehr kompakt und für Menschen gut lesbar dargestellt werden.

Wir arbeiten vorwiegend mit dem Dossier Zahlensysteme.

Auftrag 1 – Einführung ins Dossier Zahlensysteme

  1. Lies Kapitel 1 im Dossier und beantworte die Fragen zum Zählen mit den Fingern:
    1. Wie weit zählst du gewöhnlich mit Fingern?
    2. Wie weit kannst du im Binärsystem mit den Fingern einer Hand oder zweier Hände zählen?

Auftrag 2 – Verschiedene Zahlensysteme

  1. Lies Kapitel 2 im Dossier und löse Aufgabe A1. Vergleiche anschliessend mit der Lösung am Ende des Dissiers.
  2. Zusatzaufgabe: Wie gross ist die Zahl 2347 im uns bekannten Dezimalsystem?

Tipps für die Zusatzaufgabe:

Auftrag 3 – Binärzahlen lesen und umwandeln

  1. Lies Kapitel 3 im Dossier und löse Aufgaben B1 und B2.
  2. Löse Aufgabe B3 im Dossier auf https://webtigerpython.ethz.ch/:
    1. Definiere eine Funktion binary_to_decimal(b), die den Binärstring b in eine Dezimalzahl wandelt und diese zurückgibt. Beachte hierfür folgende Hinweise in den grünen Boxen. Notiere zuerst mit Kommentaren, wie du die Funktion aufbauen willst.
    2. Teste deine Funktion.

Binärzahlen als Strings

  • Für diese Übungen stellen wir Binärzahlen als String (als Text) dar: Der Binärstring „101“ entspricht der Dezimalzahl 5.
  • Einen String können wir mit einer Schleife (while oder for) Buchstabe für Buchstabe durchgehen.
  • Mit [eckigen Klammern] kannst auf einzelne Positionen im String zugreifen: Für text = „Hallo Welt“ gibt text[4] das Zeichen „o“.

Binärzahlen in Dezimalzahlen umrechnen

  • Die Wertigkeit jeder Stelle in einer Binärzahl ist 2Stelle:
  • Die Stelle ganz rechts ist die nullte Stelle, die links davon ist Stelle 1, dann 2 etc.
  • Beispiel 1: Für die dreistellige Binärzahl 111 rechnen wir 22 + 21 + 20 = 4 + 2 + 1 = 7.
  • Beispiel 2: Für die vierstellige Binärzahl 1001 rechnen wir 23 + 20 = 8 + 1 = 9.

Weitere Hinweise

  • Wenn du mit einer Schleife einen String durchgehst, beginnst du gewöhnlich bei der Stelle ganz links. Dann hat die erste Stelle im Binärstring „10110“ die Wertigkeit 24, also 16. Die nächste Stelle hat die Wertigkeit 8, dann 4 etc. Der Binärstring „10110“ entspricht also der Dezimalzahl 22 (16 + 4 + 2).
  • Die Funktion int wandelt ein Zeichen in die entsprechende Zahl, z. B. int('1') = 1.

Auftrag 4 – Bits und Bytes

  1. Löse Aufgabe B4 im Dossier.

Auftrag 5 – Dezimalzahlen in Binärzahlen umwandeln

  1. Lies Seite 8 im Dossier und löse die Aufgabe B5.
  2. Löse die Aufgabe B6: Schreibe eine Funktion decimal_to_binary(d), die die Dezimalzahl d in einen Binärstring umrechnet und diesen zurückgibt.

Auftrag 6 – Binäre Addition

  1. Löse die Aufgabe B7 auf Seite 11.
  2. Löse die Aufgabe B8 Schreibe eine Funktion binary_add(a, b), die zwei gleich lange Binästrings a und b addiert und die Summe als Binärstring zurückgibt.
    1. Die Addition soll nach demselben Verfahren verfolgen, das du in der schriftlichen Addtion anwendest. Eine Umwandlung in Dezimalzahlen ist nicht erlaubt.
    2. Beachte die Tipps im Dossier und folgenden Hinweise: Wir können Aufgabe mithilfe der Operatoren Modulo und Ganzzahldivision lösen. Kopiere den Code unten und notiere erst mit #Kommentaren hinter jede Zeile, welche beiden Zahlen ausgegeben werden. Führe dann aus.
    3. Deine Funktion muss (unter anderem) a und b Bit für Bit mit dem (bestehenden) Rest zusammenrechnen, um erstens die Summe für das aktuelle Bit und zweitens den Rest für das nächste Bit zu erhalten.
    4. Notiere erst mit Kommentaren, wie du die Funktion aufbauen willst.
  3. Wenn deine Funktion funktioniert: Erweitere sie so, dass auch zwei unterschieldich lange Binärstrings miteinander addiert werden können.
print(3%2, 3//2)
print(2%2, 2//2)
print(1%2, 1//2)
print(0%2, 0//2)

Auftrag 7 – Binäre Addition ohne Software (optional)

Du weisst, dass Computer und andere digitale Geräte Rechenmaschinen sind: Sie können unfassbar schnell rechnen. Aber wie? Die Einsen und Nullen speichert der Computer in Form elektrischer Ladungen – vereinfacht betrachtet: Ist in einer Speicherzelle eine Ladung, so bedeutet das eine Eins, sonst eine Null. Nehmen wir 8 Speicherzellen zusammen, so können wir darin eine 8-Bit-Binärzahl speichern. Angenommen, wir haben 8 Speicherzellen für Zahl A und weitere 8 Speicherzellen für Zahl B: Eine digitale Addiermaschine muss nun die Speicherzellen der Zahlen A und B so miteinander verbinden, dass sich daraus die Summe von A und B ergibt.

  1. Lies Teil 3 im Skript Vom Transistor zur CPU: Du musst nicht alles verstehen: Betrachte den Transitor einfach als Schalter, der elektrisch aktiviert wird. Wichtig ist, dass du die Logikgatter (engl. Logic gates) AND, OR, und XOR verstehst. Aus diesen Bausteinen werden nicht nur Rechenschaltungen, sondern auch andere essentielle Bestandteile eines Computers wie Speicher, Zähler, Register etc. gebaut. Bei Unklarheiten LP fragen.
  2. Lies nun das Kapitel Binäre Addition im Teil 7 des Skripts.
    1. Dieses Video erklärt den Aufbau von digitalen Addierschaltungen Schritt für Schritt.
    2. Testfrage: Angenommen, ein Logikgatter ist aus durchschnittlich 10 Transistoren aufgebaut: Wie viele Transistoren sind nötig, um zwei 8-Bit-Zahlen zu addieren?
  3. Baue selbst eine kleine Schaltung mit fertigen 4-Bit-Additions-Bausteinen auf und probiere sie aus:
    1. Löse erst Aufgabe 1 in Einfache Schhaltungen auf dem Breadboard aufbauen : Damit du lernst, wie man Schaltungen auf dem Breadboard aufbaut.
    2. Studiere das Datenblatt des 4-Bit-Voll-Addierer-Chips 74LS283
      1. VCC verbindest du mit dem Pluspol der Spannungsquelle (5V), GND mit dem Minuspol.
      2. GND Eingänge auf Schalter.
      3. Die Eingänge A und B verbindest du erstens über 10kΩ-Pullup-Widerstände mit 5V, zweitens über Schalter mit GND.
      4. Die Ausgänge Σ verbindest du über 150Ω-Widerstände mit den Anoden von LEDs, deren Kathoden dann auf GND gehen.
      5. Frage die LP nach dem Material.
Wert Dezimal Wert Binär Hex-Nennwert Merkhilfe
0 0000 0
1 0001 1
9 1001 9
10 1010 A
11 1011 B
12 1100 C Cwölf
13 1101 D Dreizehn
14 1110 E
15 1111 F Fünfzehn

Auftrag 8 – Umwandlungen Hex, Dez, Bin

  1. Löse Aufgabe C1 im Dossier.
    1. Gehe gleich vor, wie bei der Umwandlung von Binär zu Dezimal. Nur ist die Basis nun 16. Die Stelle ganz rechts hat die Wertigkeit 160, die links davon 161, dann 162 etc. Die Nennwerte entsprechen der Tabelle oben.
    2. Bei der Umwandlung von Dezimal zu Hex kannst du wieder den Restwert-Algorithmus anwenden – angepasst für das Hexadezimalsystem
  2. Lies Seite 23 im Dossier und folgende Überlegung: Wie du in der Tabelle oben siehst, füllen vier Binär-Stellen genau eine Hex-Stelle aus:
    1. Für die Umwandlung von Binär nach Hex musst du einfach jeweils vier Binär-Stellen (von rechts) zusammennehmen und die entsprechende Hex-Ziffer notieren.
    2. Für die Umwandlung von Hex nach Binär machst du das Gegenteil: Für jede Hexziffer vier Binärstellen hinschreiben.
  3. Löse Aufgabe C2 im Dossier.

Auftrag 9 – RGB-Hexcodes

Alle Farben können durch Mischen der Grundfarben Rot, Grün, und Blau erzeugt werden.

  1. Experimentieren in Word
  2. Evtl. Hinweise auf unterschiedliche Anwendungen (CSS, Word, AI, PS etc.)
  3. Bild erstellen mit HexCodes

Auftrag 10 – Turtle RGB-Regler (optional)

  • Aufgabe mit makeTurtle(keyPressed = onKeyPressed) für eigenen einfachen RGB-Mixer.

Siehe Dossier Kapitel 5, Aufgaben D1 bis D3

Aufgabe B3

Aufgabe B6

Aufgabe B8

  • gf_informatik/zahlensysteme_gra.txt
  • Zuletzt geändert: 2025-06-27 15:04
  • von gra