Untitled Quiz

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Welches der folgenden Probleme tritt bei der Vorzeichen-Betrag-Darstellung auf?

  • Eine aufwändige Multiplikation.
  • Eine effiziente Division.
  • Eine einfache Addition.
  • Eine nicht eindeutige Darstellung der Null. (correct)

Wie wird das Vorzeichen einer Zahl in der Vorzeichen-Betrag-Darstellung typischerweise bestimmt?

  • Durch die Summe aller Bits.
  • Durch das niedrigstwertige Bit (LSB).
  • Durch das höchstwertige Bit (MSB). (correct)
  • Durch die Anzahl der Einsen in der Bitfolge.

Was passiert bei der Addition von zwei Zahlen mit gleichem Vorzeichen in der Vorzeichen-Betrag-Darstellung?

  • Es erfolgt eine bitweise Addition der nachfolgenden Bits, das VZ-Bit bleibt gleich. (correct)
  • Das Ergebnis ist immer positiv.
  • Es erfolgt eine bitweise Subtraktion der nachfolgenden Bits.
  • Die VZ-Bits werden verglichen und das Ergebnis wird negiert.

Welche Aussage trifft auf die Repräsentation von Zahlen im Zahlenkreis für 3 Bits in der Vorzeichen-Betrag-Darstellung NICHT zu?

<p>100VZB repräsentiert -4. (C)</p> Signup and view all the answers

Warum ist die Umsetzung der Addition bei der Vorzeichen-Betrag-Darstellung aufwändig?

<p>Weil eine Fallunterscheidung (gleiche/ungleiche Vorzeichen) notwendig ist. (B)</p> Signup and view all the answers

Was impliziert ein gesetztes (negatives) Vorzeichenbit in der Vorzeichen-Betrag-Darstellung hinsichtlich der übrigen Stellen?

<p>Von den übrigen Stellen wird in die negative Richtung gezählt. (D)</p> Signup and view all the answers

Was passiert, wenn bei der Addition von zwei Zahlen mit gleichem Vorzeichen in der Vorzeichen-Betrag-Darstellung ein Overflow auftritt?

<p>Der Overflow wird ignoriert und liefert einen Fehler. (C)</p> Signup and view all the answers

Welche Aussage beschreibt am besten, wie negative Zahlen in der Vorzeichen-Betrag-Darstellung repräsentiert werden?

<p>Durch Setzen des Vorzeichenbits auf 1 und Beibehalten des Betrags. (B)</p> Signup and view all the answers

Welche der folgenden Komponenten beinhaltet die IEEE 754-Gleitkommazahl-Repräsentation?

<p>Vorzeichen, Exponent, Mantisse (A)</p> Signup and view all the answers

Was ist die 'Magic Number' in der Biased Notation des Exponenten bei der IEEE 754-Darstellung?

<p>127 (A)</p> Signup and view all the answers

Welche Aussage trifft auf die Mantisse in der IEEE 754-Gleitkommazahldarstellung zu?

<p>Sie liegt immer zwischen 1 und 2. (B)</p> Signup and view all the answers

Wie wird der Exponent einer Gleitkommazahl im IEEE 754-Format dargestellt?

<p>In Biased Notation (A)</p> Signup and view all the answers

Gegeben sei eine Dezimalzahl 30.625. Welchen Wert hat g10 und r10 bei der Konvertierung in das IEEE 754 Format?

<p>g10 = 30, r10 = 0.625 (B)</p> Signup and view all the answers

Welches der folgenden Programmierparadigmen wird NICHT explizit von C++ unterstützt?

<p>Funktionale Programmierung (explizit) (A)</p> Signup and view all the answers

Eine vorläufige Mantisse ist 11010.011 (binär). Wie lautet die Mantisse in wissenschaftlicher Notation unter Berücksichtigung der IEEE 754 Norm?

<p>1.1010011 * 2^4 (C)</p> Signup and view all the answers

Ein Exponent hat den Wert 5. Welchen Wert hat der biased Exponent im IEEE 754 Format?

<p>132 (A)</p> Signup and view all the answers

In welchem Jahrzehnt begann die Entwicklung von C++ unter der Leitung von Bjarne Stroustrup?

<p>1980er (B)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt C++ am treffendsten?

<p>Eine hybride Programmiersprache, die verschiedene Programmierparadigmen unterstützt. (B)</p> Signup and view all the answers

Warum ist die direkte Umwandlung einer Dezimalzahl mit Nachkommastellen (z.B. 0.625) durch separate Umwandlung der Ziffern und anschließender Interpretation als Dualzahl falsch?

<p>Weil die Basis des Zahlensystems nicht berücksichtigt wird. (B)</p> Signup and view all the answers

Auf welcher Programmiersprache basiert C++?

<p>C (A)</p> Signup and view all the answers

Welcher der folgenden Aspekte steht im Fokus der Vorlesung 'Algorithmen und Datenstrukturen' bezüglich C++?

<p>Der imperative Teil von C++. (D)</p> Signup and view all the answers

Was ist das Ergebnis der Berechnung 4!?

<p>24 (A)</p> Signup and view all the answers

Welche der folgenden Aussagen über die Berechnung der Fakultät einer natürlichen Zahl n ist korrekt?

<p>Die Fakultät von <em>n</em> ist das Produkt aller Zahlen von 1 bis <em>n</em>. (C)</p> Signup and view all the answers

Warum ist praktische Übung besonders wichtig beim Erlernen von C++?

<p>Weil C++ eine Vielzahl von Sprachelementen bietet, deren erfolgreiches Erlernen praktische Anwendung erfordert. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten den Vorteil des Algorithmus 2 im Vergleich zu Algorithmus 1 zur Berechnung der Fakultät?

<p>Algorithmus 2 spart die Variable <code>i</code> ein. (A)</p> Signup and view all the answers

Welches der folgenden Ziele ist beim Programmieren am wichtigsten, um die Wartbarkeit und Zuverlässigkeit des Codes zu gewährleisten?

<p>Den Code so zu gestalten, dass er schnell verstanden werden kann und das Fehlerrisiko minimal ist. (D)</p> Signup and view all the answers

Betrachten Sie den gegebenen C++-Code zur Berechnung der Fakultät. Welche Art von Schleife wird verwendet?

<p>Eine <code>for</code>-Schleife. (B)</p> Signup and view all the answers

Was ist das Ergebnis des bitweisen UND-Operators (&) angewendet auf die Dezimalzahlen 25 und 28?

<p>24 (B)</p> Signup and view all the answers

Welchen Zweck hat der bitweise ODER-Operator (|) im Kontext der Zustandsbeschreibung, wie im Beispiel mit carState?

<p>Er schaltet spezifische Zustände (Bits) im <code>carState</code> ein. (A)</p> Signup and view all the answers

Was passiert, wenn eine Variable innerhalb eines Blocks deklariert wird?

<p>Sie ist nur innerhalb des Blocks gültig, in dem sie deklariert wurde. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt korrekt, wie das Vorzeichenbit in der Zweierkomplementdarstellung die Skala der übrigen Bits beeinflusst?

<p>Es subtrahiert 2^n vom Wert der übrigen Bits und verschiebt die Skala ins Negative. (A)</p> Signup and view all the answers

In welchem Gültigkeitsbereich sollten Variablen und Konstanten sparsam eingesetzt werden?

<p>Im globalen Gültigkeitsbereich. (A)</p> Signup and view all the answers

Wie wird die Zweierkomplementdarstellung einer negativen Zahl -z aus der positiven Zahl z berechnet?

<p>Durch bitweise Invertierung von z und anschließende Addition von 1. (B)</p> Signup and view all the answers

Welche Aussage beschreibt am besten die Verwendung von Blöcken in der strukturierten Programmierung?

<p>Blöcke fassen Anweisungen zusammen und legen Gültigkeitsbereiche für Variablen fest, was die Strukturierung des Codes verbessert. (C)</p> Signup and view all the answers

Gegeben sei eine 4-Bit Zweierkomplementdarstellung. Welchen Wert hat die Zahl 1111?

<p>-1 (B)</p> Signup and view all the answers

Welchen Vorteil bietet die Zweierkomplementdarstellung gegenüber anderen Methoden zur Darstellung von vorzeichenbehafteten Zahlen?

<p>Sie vereinfacht die Addition und Subtraktion von Zahlen unterschiedlichen Vorzeichens. (B)</p> Signup and view all the answers

Was bedeutet (a = b) mod N in Bezug auf ganze Zahlen a, b ∈ ℤ?

<p>a geteilt durch N und b geteilt durch N haben denselben positiven Rest. (C)</p> Signup and view all the answers

Welche Aussage ist korrekt bezüglich des Zahlenkreises für 3 Bits in der Zweierkomplementdarstellung?

<p>Der Zahlenkreis stellt Zahlen von -4 bis 3 dar. (A)</p> Signup and view all the answers

Was ist das Ergebnis der folgenden Operation in der Zweierkomplementdarstellung mit 4 Bits: 0101 + 1011?

<p><code>0000</code> (Überlauf wird ignoriert) (C)</p> Signup and view all the answers

Warum ist es wichtig, die Anzahl der Bits bei der Verwendung der Zweierkomplementdarstellung festzulegen?

<p>Weil die Anzahl der Bits bestimmt, welche Zahlen dargestellt werden können und wie Überläufe behandelt werden. (B)</p> Signup and view all the answers

Warum ist die einfache Übersetzung des Morsecodes in einen Binärcode (Punkt = 0, Strich = 1) problematisch?

<p>Weil die Fano-Bedingung nicht erfüllt ist und Mehrdeutigkeiten entstehen können. (C)</p> Signup and view all the answers

Was ist das Hauptziel der Huffman-Codierung?

<p>Die effiziente Codierung von Nachrichten unter Berücksichtigung der Auftrittswahrscheinlichkeiten der Zeichen und der Fano-Bedingung. (A)</p> Signup and view all the answers

Was besagt die Fano-Bedingung im Kontext der Codierung?

<p>Kein Code für ein Zeichen darf der Anfang eines anderen Codes sein. (A)</p> Signup and view all the answers

Wie löst die Huffman-Codierung das Problem der Mehrdeutigkeit, das bei einfachen Codierungen auftreten kann?

<p>Durch die Einhaltung der Fano-Bedingung. (A)</p> Signup and view all the answers

In welcher Reihenfolge werden die Zeichen bei der Huffman-Codierung sortiert?

<p>Aufsteigend nach ihrer Wahrscheinlichkeit. (C)</p> Signup and view all the answers

Was passiert im zweiten Schritt des Huffman-Algorithmus?

<p>Die Zeichen mit der geringsten Wahrscheinlichkeit werden zusammengefasst und es werden Bits für die einzelnen Zeichen vergeben. (C)</p> Signup and view all the answers

Betrachten Sie drei Zeichen A, B und C mit den Wahrscheinlichkeiten p(A) = 0.1, p(B) = 0.2 und p(C) = 0.7. Warum führt eine Codierung von A = 10, B = 01 und C = 0 zu Mehrdeutigkeiten?

<p>Weil der Code für C der Anfang des Codes für B ist. (A)</p> Signup and view all the answers

Welche Aussage trifft auf die resultierenden Codes bei Anwendung der Huffman-Codierung zu?

<p>Die Codes haben eine variable Länge und sind abhängig von der Nachricht. (C)</p> Signup and view all the answers

Flashcards

Vorzeichen-Betrag Darstellung

Höchstwertiges Bit zeigt Vorzeichen (0=+, 1=-), Rest codiert den Betrag.

Probleme der VZB-Darstellung

Doppelte Null (+0, -0) und erschwerte Addition.

Negative Zahlen in VZB

Bei negativem Vorzeichenbit wird von den übrigen Stellen in die negative Richtung gezählt.

Doppelte Repräsentation der Null

0 000VZB und 1 000VZB repräsentieren beide Null.

Signup and view all the flashcards

Addition in VZB-Darstellung

  1. Gleiches Vorzeichen: Beträge addieren, Vorzeichen beibehalten. 2. Unterschiedliches Vorzeichen: Komplizierter (nicht vollständig in diesem Auszug).
Signup and view all the flashcards

Addition gleiches Vorzeichen (VZB)

Bitweise Addition der Beträge, VZ-Bit bleibt.

Signup and view all the flashcards

Überlaufbehandlung (VZB Addition)

Ein Überlauf wird ignoriert und führt zu einem Fehler.

Signup and view all the flashcards

Uneindeutigkeit der VZB

Die Darstellung ist nicht eindeutig, da die Null doppelt repräsentiert wird.

Signup and view all the flashcards

Modulo-Operation

Für ganze Zahlen a, b gilt: (a = b) mod N bedeutet, dass (a - b) mod N = 0.

Signup and view all the flashcards

Vorzeichenbit im Zweierkomplement

Das Vorzeichenbit verschiebt die Wertigkeit der übrigen Bits durch Subtraktion von 2^(n+1) anstatt Addition.

Signup and view all the flashcards

Zweierkomplement bilden

Um eine Zahl im Zweierkomplement zu negieren, invertiere alle Bits und addiere 1.

Signup and view all the flashcards

Zweierkomplement-Negation

Die Zweierkomplementdarstellung von -z ergibt sich aus der bitweisen Invertierung von z und Addition von 1: -z = NOT(z) + 1

Signup and view all the flashcards

Vorzeichenwechsel (2K)

Durch Invertieren der Bits und Addieren von 1 erhält man das Zweierkomplement.

Signup and view all the flashcards

100 (3-Bit, 2K)

Bei einer 3-Bit Zweierkomplementdarstellung repräsentiert 100 den Wert -4.

Signup and view all the flashcards

-z (Zweierkomplement)

Um eine Zahl z im Zweierkomplement zu negieren, invertiere alle Bits (a → a) und addiere 1.

Signup and view all the flashcards

z + z (2K)

Die Summe einer Zahl und ihres Zweierkomplements (inklusive Addition von 1) ergibt -1.

Signup and view all the flashcards

Morsealphabet-Grundidee

Grundidee des Morsealphabets: Häufige Buchstaben erhalten kurze Codes.

Signup and view all the flashcards

Fano-Bedingung

Die Fano-Bedingung verhindert Mehrdeutigkeiten in Codes, indem kein Code ein Präfix eines anderen sein darf.

Signup and view all the flashcards

Huffman-Codierung

Eine effiziente Codierungsmethode, die Zeichencodes variabler Länge verwendet, basierend auf Auftrittswahrscheinlichkeiten.

Signup and view all the flashcards

Entropie-Codierung

Alternative Bezeichnung für die Huffman-Codierung.

Signup and view all the flashcards

Ziel der Huffman-Codierung

Das Ziel ist die effiziente Codierung von Nachrichten unter Berücksichtigung der Auftrittswahrscheinlichkeiten von Zeichen und der Einhaltung der Fano-Bedingung.

Signup and view all the flashcards

Charakteristik der Huffman-Codes

Zeichen-Codes variabler Länge, abhängig von der Häufigkeit des Auftretens in einer Nachricht.

Signup and view all the flashcards

Schritt 1 der Huffman-Codierung

Sortiere Zeichen aufsteigend nach ihrer Wahrscheinlichkeit.

Signup and view all the flashcards

Schritt 2 der Huffman-Codierung

Fasse die beiden Zeichen mit der geringsten Wahrscheinlichkeit zusammen, vergebe Bits und addiere die Wahrscheinlichkeiten.

Signup and view all the flashcards

IEEE 754

Darstellung von Gleitkommazahlen mit Vorzeichen (s), Exponent (e) und Mantisse (m).

Signup and view all the flashcards

Vorzeichen (s)

Das Bit, das angibt, ob die Zahl positiv (0) oder negativ (1) ist.

Signup and view all the flashcards

Exponent (e)

Der Exponent wird in Biased Notation gespeichert. Berechne den Exponenten mit e-127.

Signup and view all the flashcards

Mantisse (m)

Binärwert zwischen 1 und 2. Die führende 1 vor dem Komma wird nicht gespeichert.

Signup and view all the flashcards

Biased Notation

Eine Methode, um Exponenten darzustellen, so dass negative Exponenten auch als positive Zahlen gespeichert werden können. Wird mit einer Magic Number (127) berechnet.

Signup and view all the flashcards

Gleitkommazahl Konvertierung

  1. Dezimalzahl in Binärzahl umwandeln. 2. In wissenschaftliche Notation umwandeln. 3. Bias zum Exponenten addieren. 4. Mantisse normalisieren
Signup and view all the flashcards

Magic Number (127)

Die Zahl, die zur Umwandlung des Exponenten in Biased Notation verwendet wird (127 für Single Precision).

Signup and view all the flashcards

Dezimal zu Binär (Nachkomma)

Multipliziere die Nachkommazahl wiederholt mit 2, um die binären Nachkommastellen zu erhalten. Notiere jeweils die Zahl vor dem Komma (0 oder 1).

Signup and view all the flashcards

Fakultät (n!) Definition

Multipliziert n mit allen Zahlen bis 1.

Signup and view all the flashcards

Bitweise Operatoren: Zweck

Ein Weg, um mehrere Zustände kompakt darzustellen.

Signup and view all the flashcards

Bitweise Operatoren: Beispiel

Bit 1 ist Licht an, Bit 2 Motor an usw.

Signup and view all the flashcards

Bitweise ODER (|) Verwendung

Oder-Verknüpfung, um Bits zu setzen.

Signup and view all the flashcards

Bitweise UND (&) Verwendung

Überprüft, ob ein bestimmtes Bit gesetzt ist.

Signup and view all the flashcards

Block Definition

Eine Gruppierung von Anweisungen und Deklarationen.

Signup and view all the flashcards

Gültigkeitsbereich (Scope) Definition

Variablen sind nur im Block gültig, in dem sie deklariert sind.

Signup and view all the flashcards

Globale Variablen: Nutzung

Sollte sparsam verwendet werden.

Signup and view all the flashcards

Was ist C++?

Eine weit verbreitete höhere Programmiersprache, entwickelt in den frühen 80ern von Bjarne Stroustrup.

Signup and view all the flashcards

C++ Programmierparadigmen

Prozedurale, maschinennahe, modulare, generische und objektorientierte Programmierung.

Signup and view all the flashcards

Was bedeutet 'hybride Programmiersprache' in Bezug auf C++?

Eine hybride Programmiersprache, die verschiedene Programmierstile unterstützt.

Signup and view all the flashcards

Fokus in Algorithmen und Datenstrukturen (C++)

Die imperative Programmierung (prozeduraler Teil) von C++.

Signup and view all the flashcards

Definition: Fakultät n!

Das Produkt aller ganzen Zahlen von 1 bis n.

Signup and view all the flashcards

Imperativ vs. Objektorientiert

Imperativ: Schritt-für-Schritt-Anweisungen; Objektorientiert: Daten und Methoden.

Signup and view all the flashcards

Herausforderung in C++: Zeiger

Zeiger sind ein komplexes, aber mächtiges Sprachelement in C++.

Signup and view all the flashcards

Wer hat C++ entwickelt?

Bjarne Stroustrup bei AT&T Anfang der 80er Jahre.

Signup and view all the flashcards

Study Notes

Okay, hier sind die detaillierten Studiennotizen basierend auf den Inhalten der bereitgestellten Bilder, geschrieben auf Deutsch:

C++ Grundlagen: Variablen und Datentypen

  • In C++ sind Variablen Speicherorte, die einen Wert eines bestimmten Datentyps speichern.
  • char: Wird genutzt, einzelne Buchstaben zu speichern.
  • char[]: Ein Array von char-Variablen, auch bekannt als Zeichenkette oder String. Durch #include <string> können Strings zudem als Objekte der Klasse std::string verwendet werden.
  • int: Dient zum Speichern von ganzzahligen Werten.
  • float: Wird verwendet, um Gleitkommazahlen (Kommazahlen) mit einer Genauigkeit von 4 Byte zu speichern.
  • double: Ermöglicht das Speichern von Gleitkommazahlen mit doppelter Genauigkeit (8 Byte).
  • bool: Ein Datentyp, der entweder true (wahr) oder false (falsch) speichern kann.
  • void: Gibt an, dass eine Funktion keinen Wert zurückgibt oder keine Argumente akzeptiert.
  • getline(cin,...): Erlaubt die Erfassung einer Textzeile, die über die Konsole eingegeben wurde.
  • to_string(): Konvertiert Zahlen in Text.
  • IEEE 754: Ein Standard für die Darstellung von Gleitkommazahlen, der Exponenten verwendet.

Von-Neumann-Architektur

  • John von Neumann (1903-1975) entwickelte theoretische Überlegungen zum Aufbau eines Rechners.
  • Das Grundprinzip ist die Basis für General-Purpose-Computer (PCs, Server).
  • Parallelrechner und moderne Dual- oder Multicore-CPUs stellen Ausnahmen von diesem Prinzip dar.
  • Grundprinzipien:
  • Problemunabhängigkeit: Ein Programm steuert den konkreten Ablauf.
  • Programme bestehen aus einer Sequenz von binären Entscheidungen.
  • Programme werden wie Daten im Speicher abgelegt.
  • Im Speicher sind Daten, Adressen und Programme nicht voneinander zu unterscheiden.
  • Komponenten eines Von-Neumann-Rechners:
  • Steuerwerk: Kontrolliert den Ablauf des gesamten Systems.
  • Rechenwerk (Arithmetic & Logic Unit, ALU): Führt arithmetische und logische Operationen durch.
  • Arbeitsspeicher: Enthält maschinenlesbare Programme und Daten.
  • Ein-/Ausgabeeinheit: Ermöglicht die Bereitstellung und Speicherung von Daten auf externen Geräten.
  • Verbindungssystem (Bussystem): Verbindet die verschiedenen Komponenten.
  • Prinzipieller Aufbau moderner Rechner:
  • Adressbus: Überträgt Speicheradressen.
  • Steuerbus: Überträgt Steuerbefehle vom Steuerwerk an andere Verarbeitungseinheiten.
  • Datenbus: Dient zur Übertragung von Daten oder Programmbefehlen.
  • CPU (Central Processing Unit): Zentrale Verarbeitungseinheit, interpretiert und führt Anweisungen aus.
  • ROM (Read Only Memory): Festwertspeicher, aus dem nur gelesen werden kann.
  • RAM (Random Access Memory): Speicher, auf den lesend und schreibend zugegriffen werden kann.
  • Ein-/Ausgabe: Schnittstellen zu externen Geräten.
  • Daten, Adressen und Befehle werden einheitlich durch binäre Einheiten repräsentiert.
  • 1 Bit: Elementares Ja/Nein-Signal (0/1).
  • 1 Byte: 8 Bit.
  • 1 Wort: Definiert durch die Breite des Datenbusses (16, 32 oder 64 Bit), oft aber nach Konvention: 2 Byte = 16 Bit.
  • 1 Langwort: 4 Byte = 32 Bit.

Central Processing Unit (CPU)

  • Aufgabe der CPU ist es, Befehle zu interpretieren und auszuführen.
  • Im einfachsten Fall wird zu jedem Zeitpunkt 1 Befehl ausgeführt, der 1 Datenwert berechnet (SISD, Single Instruction Single Data).
  • Speicherplätze auf der CPU:
  • Register: Sehr schneller Speicher, direkt am Rechenwerk, speichert Elementardaten (Zahl, Adresse, Befehl). Häufige Beispiele sind Datenregister D0-D7 und Adressregister A0-A7.
  • Cache: Zwischenspeicher mit schnellem Zugriff und geringerer Kapazität.
  • Weitere Register und Mikroprogrammspeicher (als ROM).
  • Steuerwerk: Steuert die an der Befehlsausführung beteiligten Einheiten, insbesondere Auswahl der Operationen für die ALU. Es beinhaltet den Befehlsdekodierer und die Adressberechnung.
  • Rechenwerk (Arithmetic Logical Unit, ALU): Führt Operationen (+, -, *, /, ∧, ∨, ...) aus Verknüpfung von höchstens zwei Operanden, von denen mindestens einer ein Register sein muss.
  • Ein-Adress-Maschine: Einer der Operatoren muss ein festes Register sein, der Akkumulator.
  • Zwei-Adress-Maschinen: Ein Register dient als Akkumulator.
  • Drei-Adress-Maschine: Das Ergebnis wird in eine dritte Speicherstelle geschrieben und nicht in den Akkumulator zurück.
  • Maschinensprache: Ausführbares Programm im Speicher, Befehle sind durchnummeriert (OP-Code).
  • Assembler-Sprache: Nahezu äquivalent zur Maschinensprache, aber leichter lesbar, verwendet Kürzel (mnemonics) für Befehle und Register.
  • Das Steuerwerk und seine Funktion:
  • Das Steuerwerk enthält ein Befehlsregister und einen Befehlszähler.
  • Ein Dekodierer entschlüsselt den Befehl.
  • Eine Mikroprogrammeinheit interpretiert den Befehl als Folge von Operationen für das Rechenwerk.
  • Die Adressberechnung lokalisiert die Daten im Speicher.
  • Operanden und Adressen werden zerlegt.
  • Adresswerte sind relativ und nicht absolut; eine Adressberechnung ist nötig ist.
  • Der Befehlszählregister hält die Adresse des nächsten Befehls.

Der Befehlsausführungszyklus

  • Das Programm ist eine Folge von Befehlen.
  • Der Zyklus umfasst die Ausführung eines einzelnen Befehls.
  • Konkreter Ablauf:
    1. Die aktuelle Befehlsadresse wird aus dem Befehlszählregister in den Adressbus gelegt.
    2. Der Befehl wird in das Befehlsregister geladen.
    3. Der Befehlszählregister wird erhöht oder bei einem Sprungbefehl mit einer neuen Adresse geladen.
    4. Der Befehl wird dekodiert und interpretiert.
    5. Für jede Elementaroperation werden die Operanden bereitgestellt, die Operationen ausgeführt und die Ergebnisse im Akkumulator gespeichert
    6. Das Gesamtergebnis wird vom Akkumulator in den Datenbus gestellt.

Speicherhierarchie

  • Die Speicherhierarchie besteht aus drei Ebenen: Primärspeicher, Sekundärspeicher und Tertiärspeicher.
  • Im Primärspeicher gibt es sehr schnelle Register, Caches geringer Kapazität und RAM.
  • Der Lokalitätsprinzip besagt, dass der nächste Befehl wahrscheinlich auf Daten zugreift, die sich in der Nähe der zuletzt verwendeten Daten befinden.
  • Die konkrete Lage der Daten im Speicher hat Auswirkungen auf die Performance.
  • Auf Daten in der Nähe der zuletzt geladenen Daten kann schneller zugegriffen werden, während der Zugriff auf weiter entfernte Daten langsamer ist

Bussysteme

  • Bussysteme dienen zur Verbindung von Rechnerkomponenten für den Datenaustausch.
  • Anstelle der sehr aufwändigen direkten Verkabelung nutzen mehrere Geräte einen gemeinsamen Datenübertragungsweg.
  • Ein Steuerbus, ein Adressbus und ein Datenbus bilden zusammen einen Systembus
  • Es treten serielle und parallele Busse auf. Dabei werden Daten seriell im Binärformat übertragen oder parallel über mehrere Leitungen gleichzeitig.
  • PCI Bus (Peripheral Component Interconnect), USB (Universal Serial Bus) und andere Busse verbinden Peripheriegeräte.

Probleme der Von-Neumann-Architektur

  • Der Von-Neumann-Flaschenhals beschreibt die relativ geringe Bandbreite des Datenbusses im Verhältnis zur CPU-Leistung, die durch Programmabläufe ausgebremst wird.
  • Ein beliebiger Datenzugriff ist dadurch erschwert, dass die Datenbereitstellung erst nach der Befehlsdekodierung möglich ist.
  • Caches versuchen dieser Verlangsamung entgegenzuwirken.

Wichtige Begriffe

  • Ein Datum ist die Einzahl von Daten.
  • Daten, Adressen, und Befehle sind einheitlich durch binäre Einheiten repräsentiert.
  • Ein Programm ist eine Folge von einzelnen Befehlen, die von der CPU verarbeitet werden und es ist eine konkrete Umsetzung (Implementierung) eines Algorithmus.
  • Compiler, Interpreter und Assemblierer sind Programme, die Quellcode in Maschinencode übersetzen.
  • Das Betriebssystem ist ein Programm zum Ausführen von Programmen.
  • GUI = Graphical User Interface, graphische Benutzeroberfläche.
  • Der Begriff Shell bezieht sich auf Kommandozeileninterpreter.
  • MS Windows: 1990: Windows 3.0 1995: Windows 95, erstes multitasking-fähiges Version. • Unix/Linux: 1970er: Entwicklung von Unix als multi-tasking, multi-user BS auf Basis von C 1980er: Entwicklung von X-Windows als graphische Benutzeroberfläche (GUI), auch für Remote User

Betriebssysteme

  • Benutzer können einen Rechner in verschiedenen Formen nutzen.
  • Ein Single-User-System erlaubt nur einem Nutzer die gleichzeitige Nutzung, während Multi-User-Systeme die quasigleichzeitige Nutzung durch mehrere Nutzer ermöglichen.
  • Weitere Aufgaben des Betriebssystems sind:
  • Die Verwaltung in einer hierarchischen Dateisystemstruktur und die Rechteverwaltung ("Wer darf was?").
  • Die Datensicherheit, z. B. durch den Schutz vor Datenverlust bei Systemabstürzen.
  • Multi-Tasking durch die Zuteilung von Ressourcen in Zeitscheiben.

Codierung

  • Codierung beschäftigt sich mit der binären Repräsentation von Daten.

Zahlensysteme

  • Symbole (Ziffern) für bestimmte (Grund-)Zahlen.
  • Dezimalsystem für elektronische Rechner ungeeignet.
  • Basen 8 und 16 sind 2er-Potenzen; Umrechnungen zwischen diesen Systemen besonders einfach.
  • Wichtige Beispiele: Dezimalsystem (b=10), Duodezimalsystem (b=12), Dualsystem (Binärsytem, b=2), Hexadezimalsystem (b=16), Oktalsystem (b=8)

Zahlentypen

  • Zahlentypen sind eingeschränkte Darstellungen von Zahlenarten.
  • Natürliche Zahlen, ganze Zahlen, Fließkommazahlen und Festkommazahlen.
  • Die Interpretation von Werten, die Genauigkeit der Darstellung und die minimal/maximal darstellbare Zahl bestimmt der Zahlentyp.
  • Wichtige Begriffe:
  • Additionssystem
  • Stellenwertsystem
  • Vorzeichen-Betrag-Darstellung
  • Zweierkomplement
  • Bias

Binäre Operationen

  • Reihenfolge der Ziffern im Ergebnis wird oft falsch angenommen!
  • Modulo-Rechnung
  • Addition বিন্যার
  • Multiplikation Binärer Zahlen

###Maschinensprache und Assembler-Sprache

  • Op-Code
  • Operand

Zeichenkodierung

  • ASCII: American Standard Code for Information Interchange
  • Basierend auf lateinischem Alphabet und arabischen Zahlen, mind. 7 bit notwendig (128 Zeichen).
  • Unicode und UTF: Legt einheitliche Codes für alle sinntragenden Zeichen aller Kulturen fest
  • UTF: Unicode Transformation Format
  • Codierung von Sonderfällen wie ∞ oder ) (Div. durch 0)

Informations-Codierung

  • Die Übertragung und Speicherung von Daten erfordert Effizienz.
  • Algorithmen und Datenstrukturen können verlustfrei und verlustbehaftete sein.
  • Wie läßt sich daraus Nutzen ziehen, um Daten kompakt darzustellen (zu komprimieren)?
  • Was ist Information und Wahrscheinlichkeit?
  • Algorithmus: Handlungs- bzw. Berechnungsvorschrift zur Lösung eines Problems
  • Exakt festgelegter Ablauf, mit dessen Hilfe ein bestimmtes Ziel erreicht werden kan
  • Abstraktes Gegenstück zu der Umsetzung in Form eines konkreten Programms

Komprimierung

  • Speicherung der Anzahl wiederholter Zeichen, z.B. Runlength-Codierung
  • Im Morsecode bekommen häufige Buchstaben einen kurzen Code.
  • Huffman-Codierung
  • Steuerung der an Befehlsausführung beteiligten Einheiten, Prof. Dr. Volker Blanz

Programmiersprache C++ Grundlagen

  • Entwicklung Anfang 80er Jahre unter Leitung von Bjarne Stroustrup bei AT & T
  • C ++ ist eine hybride Programmiersprache und unterstützt
  • Prozedurale (imperative) Programmierung
  • Maschinennahe Programmierung
  • Modulare Programmierung
  • Generische Programmierung (parametrisierte Typen, Templates)
  • Objektorientierte Programmierung
  • Basiert auf der Programmiersprache C
  • Software- Begriffe:
  • Das Program
  • Betriebsystem
  • Sprachen C, Assembler, Hochsprachen
  • Compiler , Assemblern

Operatoren

  • Der Rest der Division ist der Modulo
  • Die Berechnung befolgt die Klammerregeln Punkt vor Strich.
  • Zusammengesetzte Operatoren == += usw.
  • Es kann aber muss nicht Weiterrücken der Binärstellen erfolgen
  • Zuweisung von Variablen unterschiedlichen Typs

Algorithmen in C++

  • Syntax für Zuweisung ist (Wert-)result = result *i.
  • Mit Datentypen kann gerechnet werden
  • Operatoren können überschrieben werden
  • Es gibt While, if, switch

Wozu sind Zahlensysteme notwendig

  • Zahlenwerte (verschiedener Zahlensysteme), Zeichen oder Bilder kodiert
  • Bit = elementares Ja/Nein Signal 0/1
  • 1 Byte 8 Bit
  • Rechner stellt nur zwei Zustände dar (Bit): Spannung liegt an oder nicht

Strukturen

  • Verwendung von Klassen
  • Deklaration der Member
  • Objekt kann von eine Klasse implementier werden
  • Was ist in einer Vererbung und was sind Klassen
  • Daten mit Algorithmen kombinieren

Zusammenfassung über Daten Strukturen und Speicher

  • Drei Speicherebenen für Daten & Programme
  • Speicher-Hierarchie
  • Caches speichern
  • zuletzt genutzte Daten
  • zuletzt berechnete Ergebnisse Prof. Dr. Volker Blanz
  • Daten sind einheitlich repräsentiert durch binäre Einheiten

Wenn du noch mehr Details zu bestimmten Unterpunkten benötigst oder weitere Fragen hast, sag einfach Bescheid!

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser