Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:glf22:python:bits-and-bytes [2023/03/20 10:51] – [ppm-Datei] Olaf Schnürer | lehrkraefte:snr:informatik:glf22:python:bits-and-bytes [2023/03/27 19:16] (current) – [Mitschriebe] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | ====== Bits and bytes ====== | ||
| + | |||
| + | ===== Stellenwertsysteme ===== | ||
| + | |||
| + | Per E-Tafel erklärt: | ||
| + | * 2023: Schreibweise in Steinzeit, Römerzeit, heute (Dezimalsystem = Zehnersystem = Stellenwertsystem zur Basis 10 mit den 10 Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); | ||
| + | * Fünfersystem | ||
| + | * Umrechnung Fünfersystem -> Zehnersystem | ||
| + | * Schreibweise mit Index unten | ||
| + | * Umrechnung Zehnersystem -> Fünfersystem: | ||
| + | * Subtraktionsmethode: | ||
| + | * Divisionsmethode: | ||
| + | * Kurzschreibweise für Divisionsmethode und Beweis | ||
| + | * Primarschule im Fünferland: | ||
| + | * zähle von 0 bis $(32)_{10}$; | ||
| + | * schreibe das Kleine Einspluseins auf; | ||
| + | * schreibe das Kleine Einmaleins auf; | ||
| + | * addiere zwei Zahlen schriftlich; | ||
| + | * multipliziere zwei Zahlen schriftlich; | ||
| + | * St. Galler Bahnhofsuhr ablesen | ||
| + | <hidden Fotos der St. Galler Bahnhofsuhr> | ||
| + | <hidden Foto 1> | ||
| + | <hidden Foto 2> | ||
| + | <hidden Foto 3> | ||
| + | <hidden Foto 4> | ||
| + | |||
| + | Online-Binäruhr von Jens Gallenbacher (Knöpfe unten zum Einschalten von Erklärungen; | ||
| + | |||
| + | https:// | ||
| + | </ | ||
| + | * Binärsystem = Dualsystem = Zweiersystem | ||
| + | * Warum? Computer rechnen im Binärsystem (einfacher als etwa Zehnersystem, | ||
| + | * Umrechnungen wie oben, etwa 2023 im Binärsystem angeben per Divisionsmethode! | ||
| + | * Primarschule im Zweierland: Zählen, Additions- und Multiplikationstabellen, | ||
| + | |||
| + | ===== Logik und logische Schaltungen ===== | ||
| + | |||
| + | Ziel: Baue eine logische Schaltung, die zwei Binärzahlen addiert! | ||
| + | |||
| + | * Bezeichnungen: | ||
| + | * Bit = binary digit = Binärziffer, | ||
| + | * byte = Folge von 8 Bit = 8-stellige Binärzahl (oder im Kontext von Speicherplatz (etwa Grösse von Festplatten) die Möglichkeit zur Speicherung einer solchen Zahl) | ||
| + | * Wie viele verschiedene Binärzahlen kann man in einem byte speichern? | ||
| + | <hidden Antwort> | ||
| + | Bei jede der 8 Positionen gibt es zwei Möglichkeiten (0 oder 1), also $2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 = 2^8 =256$ Möglichkeiten; | ||
| + | * Boolesche/ | ||
| + | * AND, OR, NOT als logische Gatter gezeichnet (wie später ähnlich in Logisim) | ||
| + | * mathematische Schreibweise: | ||
| + | * $x \wedge y$ statt $x \text{ AND } y$ | ||
| + | * $x \vee y$ statt $x \text{ OR } y$ | ||
| + | * $\overline{x}$ statt $\text{NOT } x$ (manchmal statt der Überstreichung auch $\neg x$) | ||
| + | * Aufgabe: Wahrheitstabelle ausfüllen (sechs Spalten, zwei Eingänge/ | ||
| + | * Eingänge $a$ und $b$; | ||
| + | * Ausgänge | ||
| + | * Was fällt auf? | ||
| + | * Per obiger Aufgabe "de morgansche Gesetze" | ||
| + | * Es gibt viele andere ähnliche Gesetze, siehe etwa https:// | ||
| + | * Insbesondere darf man wegen der Assoziativgesetze | ||
| + | * $x \wedge y \wedge z$ und | ||
| + | * $x \vee y \vee z$ schreiben (ohne Klammern). | ||
| + | |||
| + | <hidden de Morgansche Gesetze in Logisim> | ||
| + | {{: | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Zur Auflockerung während der obigen Themen Ausschnitte aus dem folgenden Video gezeigt: | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | * nach Erklärung logischer Gatter: Video bis 3:00 (oder gar 3:55, also vor nand); | ||
| + | * nach de Morgan bis 5:00 (Gesetze erklären, warum NAND zweier verneinter Eingänge ODER ergibt); | ||
| + | * später eventuell bis zum Ende schauen, beispielsweise bis 8:10 als Wiederholung/ | ||
| + | |||
| + | ===== Wie Computer Binärzahlen addieren (inklusive Disjunktive Normalform) ===== | ||
| + | |||
| + | Lernziele: In der folgenden, relativ langen Aufgabe (Zeitaufwand ca. 2 Doppellektionen) wirst du lernen: | ||
| + | * was die **disjunktive Normalform** (DNF) ist: Wie man zu einer gegebenen Wahrheitstafel einen logischen Ausdruck findet, der nur die logischen Standardgatter AND, OR, NOT verwendet; insbesondere ist **jede** Wahrheitstafel durch einen logischen Ausdruck (und damit eine logische Schaltung) realisierbar; | ||
| + | * was ein **Halbaddierer** ist; | ||
| + | * was ein **Volladdierer** ist; | ||
| + | * was ein **4-Bit-Addierer** ist bzw. genauer: wie man dem Computer schriftliches Addieren beibringt, indem man Halb- und Volladdierer geschickt kombiniert; | ||
| + | * wie man mit " | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Baue anhand der folgenden Anleitungen einen 4-Bit-Addierer mit Logisim (bitte alles zu Logisim Erklärte sofort selbst ausprobieren; | ||
| + | |||
| + | * Video 1: [[https:// | ||
| + | |||
| + | * Installiere Logisim über den folgenden Link (vermutlich wirst du ausserdem Java installieren müssen - während der Logisim-Installation wirst du hoffentlich auf die entsprechende Java-Installations-Webseite geleitet): https:// | ||
| + | | ||
| + | * Video 2: [[https:// | ||
| + | |||
| + | * Falls du selbst Notizen machst: In den folgenden Videos verwende ich die {{ : | ||
| + | |||
| + | * Video 3: [[https:// | ||
| + | | ||
| + | * Video 4: [[https:// | ||
| + | | ||
| + | * NEU: DNF für Volladdierer gemeinsam; zwei Alternativen erklärt: mit Hilfe zweier Halbaddierer oder mit etwas Nachdenken (und zwei XOR-Gattern) | ||
| + | | ||
| + | * Video 5: [[https:// | ||
| + | |||
| + | * Überlege dir die logischen Ausdrücke für $c$ und $s$ (mit Hilfe der disjunktiven Normalform). | ||
| + | * Entwirf das Bauteil " | ||
| + | * Kombiniere einen Halb- und drei Volladdierer zu einem 4-Bit-Addierer. Hinweis: Deine Schaltung wird in etwa so aussehen wie das Diagramm im Video. | ||
| + | |||
| + | Bonus-Material: | ||
| + | * Video 6: [[https:// | ||
| + | |||
| + | * Statt den Volladdierer per " | ||
| + | |||
| + | Diverse Screenshots: | ||
| + | <hidden XOR> | ||
| + | {{: | ||
| + | </ | ||
| + | <hidden Halbaddierer> | ||
| + | {{: | ||
| + | </ | ||
| + | <hidden Drei Möglichkeiten für Volladdierer> | ||
| + | {{: | ||
| + | </ | ||
| + | <hidden 4-Bit-Addierer> | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Falls Logisim nicht installierbar ist oder man andere Videos zu Logisim sehen möchte:> | ||
| + | Online-Alternativen zu Logisim: | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Unterlagen zum aktuellen Thema von Ivo Blöchliger: | ||
| + | * Videos zum Bauen von Halb-, Voll- und 4-Bit-Addierer: | ||
| + | * Präsentation dazu und zu Weiterführendem: | ||
| + | </ | ||
| + | |||
| + | Computer können natürlich viel mehr, als nur Binärziffern addieren, aber dafür haben wir leider keine Zeit, vgl. aber der folgende Abschnitt. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Bonus: Weiterführendes Material ===== | ||
| + | |||
| + | Sinnvolle weiterführende Fragen sind beispielsweise: | ||
| + | * Wie speichert man ein Bit bzw. eine Binärzahl? | ||
| + | * Wie arbeitet ein Computer schrittweise ein Programm ab? | ||
| + | * Was passiert eigentlich genau, wenn ich eine Taste auf der Tastatur drücke? | ||
| + | |||
| + | Hier einige Empfehlungen: | ||
| + | |||
| + | * ein nettes Spiel (aber nicht ganz einfach): https:// | ||
| + | * Das bereits verwendete Video [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * eventuell ergänzen, falls es weitergeht | ||
| + | * Im ersten Video der obigen Serie werden empfohlen: | ||
| + | * eher universitäres Niveau: https:// | ||
| + | * Videos von Ben Eater, vgl. etwa https:// | ||
| + | * In dem Buch " | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * Conway' | ||
| + | |||
| + | ===== Farben und Speicherung von Bildern ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Bearbeite das folgende Arbeitsblatt: | ||
| + | |||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== ppm-Datei ==== | ||
| + | |||
| + | Alle Zeilen in der folgenden Dati, die mit # beginnen, sind Kommentare und können weggelassen werden. | ||
| + | |||
| + | <code txt> | ||
| + | P3 | ||
| + | # " | ||
| + | 5 6 | ||
| + | 255 | ||
| + | # " | ||
| + | # end of header, data below | ||
| + | 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 | ||
| + | 255 255 255 255 0 0 255 0 0 255 0 0 255 255 255 | ||
| + | 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 | ||
| + | 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 | ||
| + | 0 0 255 255 255 255 0 0 255 255 255 255 0 0 255 | ||
| + | 0 0 255 255 255 255 0 0 255 0 0 255 0 0 255 | ||
| + | </ | ||
| + | |||
| + | ==== svg-Datei ==== | ||
| + | |||
| + | <code txt> | ||
| + | <svg height=" | ||
| + | <polygon points=" | ||
| + | style=" | ||
| + | <polygon points=" | ||
| + | style=" | ||
| + | <polygon points=" | ||
| + | style=" | ||
| + | <circle cx=" | ||
| + | <text x=" | ||
| + | transform=" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Speicherung von Zahlen und Texten (ASCII und Unicode) ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Bearbeite das folgende Arbeitsblatt: | ||
| + | |||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Mitschriebe ==== | ||
| + | |||
| + | * 2aLIM: {{ : | ||
| + | * 2kWG: {{ : | ||
| + | * 2lW: {{ : | ||
| + | * 2rG: {{ : | ||
| + | |||
| + | ==== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||
| + | |||