**Dies ist eine alte Version des Dokuments!**
Zahlensysteme & Datentypen
## 1 Integers
- Ich kann erklären, was ein Datentyp ist, und den Unterschied zwischen statischer (C#, C) und **dynamischer** (Python) Typisierung an einem Beispiel erläutern -- inklusive je eines Vor- und eines Nachteils. 2. Ich kann für $n$ Bit berechnen, **wie viele** Zahlen darstellbar sind sowie die **kleinste** und die **grösste** Zahl -- je für `int` und `unsigned int`. 3. Ich kann für eine konkrete Anwendung einen **passenden Datentyp wählen** und meine Wahl mit einer Abschätzung des Wertebereichs begründen. 4. Ich kann erklären, was ein **Überlauf (Overflow)** ist, warum dabei aus der grössten positiven die kleinste negative Zahl wird, und warum das so gefährlich ist (Ariane 5). ## 2 Programmieren in C# 5. Ich kann in C# ein einfaches Programm schreiben: Variablen **deklarieren** und mit Werten belegen, rechnen, ausgeben, sowie **Verzweigungen** und **Schleifen** verwenden. Insbesondere kenne ich die Falle der **Ganzzahldivision** (`7 / 3` ergibt `2`). ## 3 Gleitkommazahlen 6. Ich kann eine Dezimalzahl mit Nachkommateil ins **Binärsystem** umwandeln und in **wissenschaftlicher Schreibweise** $1.M_2 \cdot 2^{e}$ darstellen -- und umgekehrt. 7. Ich kann den **Aufbau einer Gleitkommazahl** erklären: Vorzeichenbit, Exponent mit **Bias** und **normalisierte Mantisse** mit **impliziter Eins**. 8. Ich kann eine Dezimalzahl ins **Mini-Float-Format** (oder ähnliches Format mit vorgegebener Anzahl Bits) umwandeln und ein Mini-Float-Bitmuster zurück in eine Dezimalzahl. Ich kann damit die grösste und die kleinste darstellbare Zahl bestimmen. 9. Ich kann erklären, warum $0.1$ **nicht exakt** darstellbar ist und warum `0.1 + 0.2 == 0.3` zu `False` führt -- und weiss, wie man Gleitkommazahlen stattdessen vergleicht. 10. Ich kann erklären, warum Gleitkommazahlen **ungleichmässig** auf dem Zahlenstrahl liegen, und welche Folgen das hat (Rundungsfehler summieren sich auf, **Absorption**). 11. Ich kenne die **Sonderfälle** $\pm 0$, $\pm\infty$ und `NaN` und weiss, dass keiner davon eine Fehlermeldung auslöst. ++++ ++++Praktische Python Befehle
# Length len("laenge von einem String oder Liste ...") # Data types str(42) int("132") float(13) type(42) bin(132) # Strings s = "ich bin ein String" s[2:] s[4:7] s[:5] s.replace('b','B') li = s.split(' ') s.strip(" hallo ") s.lstrip(" hallo ") s.rstrip(" hallo ") s = s.upper() s = s.lower() s.find("bin") many_zeros_string = "0" * 100 ## TIPP: In diesem Thema bietet es sich meist an, mit Strings anstelle Listen zu arbeiten. Sollte man aber das Bedürfnis nach Listen haben, hier die wichtigsten Befehle: li = ['k','s','r'] len(li) li.append('romanshorn') li.pop(2) li.remove('k') print(li)
++
Voraussetzungen
Aus dem Grundlagenfach weisst du bereits, was Zahlensysteme sind. Insbesondere kennst du das Binärsystem und kannst:
- Umrechnen: Dezimalsystem ↔ Binärsystem
- Darstellung negativer Zahlen
- Rechnen mit Binärzahlen: Addition, Multiplikation, Subtraktion
- mithilfe des Binärsystems Mitmenschen (die es verdient haben) eloquent beleidigen können
- Gegeben $x-$Bits für Darstellung → min./max. Zahl bestimmen, die damit dargestellt werden kann
Das Dossier Zahlensysteme aus dem Grundlagenfach findest du hier: Dossier Zahlensysteme (GFIF)
Dossier
- ef_informatik/zahlensysteme.1787662153.txt.gz
- Zuletzt geändert: 2026-08-25 12:49
- von
sca