Podcast
Questions and Answers
Welches der folgenden Probleme tritt bei der Vorzeichen-Betrag-Darstellung auf?
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?
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?
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?
Welche Aussage trifft auf die Repräsentation von Zahlen im Zahlenkreis für 3 Bits in der Vorzeichen-Betrag-Darstellung NICHT zu?
Warum ist die Umsetzung der Addition bei der Vorzeichen-Betrag-Darstellung aufwändig?
Warum ist die Umsetzung der Addition bei der Vorzeichen-Betrag-Darstellung aufwändig?
Was impliziert ein gesetztes (negatives) Vorzeichenbit in der Vorzeichen-Betrag-Darstellung hinsichtlich der übrigen Stellen?
Was impliziert ein gesetztes (negatives) Vorzeichenbit in der Vorzeichen-Betrag-Darstellung hinsichtlich der übrigen Stellen?
Was passiert, wenn bei der Addition von zwei Zahlen mit gleichem Vorzeichen in der Vorzeichen-Betrag-Darstellung ein Overflow auftritt?
Was passiert, wenn bei der Addition von zwei Zahlen mit gleichem Vorzeichen in der Vorzeichen-Betrag-Darstellung ein Overflow auftritt?
Welche Aussage beschreibt am besten, wie negative Zahlen in der Vorzeichen-Betrag-Darstellung repräsentiert werden?
Welche Aussage beschreibt am besten, wie negative Zahlen in der Vorzeichen-Betrag-Darstellung repräsentiert werden?
Welche der folgenden Komponenten beinhaltet die IEEE 754-Gleitkommazahl-Repräsentation?
Welche der folgenden Komponenten beinhaltet die IEEE 754-Gleitkommazahl-Repräsentation?
Was ist die 'Magic Number' in der Biased Notation des Exponenten bei der IEEE 754-Darstellung?
Was ist die 'Magic Number' in der Biased Notation des Exponenten bei der IEEE 754-Darstellung?
Welche Aussage trifft auf die Mantisse in der IEEE 754-Gleitkommazahldarstellung zu?
Welche Aussage trifft auf die Mantisse in der IEEE 754-Gleitkommazahldarstellung zu?
Wie wird der Exponent einer Gleitkommazahl im IEEE 754-Format dargestellt?
Wie wird der Exponent einer Gleitkommazahl im IEEE 754-Format dargestellt?
Gegeben sei eine Dezimalzahl 30.625. Welchen Wert hat g10
und r10
bei der Konvertierung in das IEEE 754 Format?
Gegeben sei eine Dezimalzahl 30.625. Welchen Wert hat g10
und r10
bei der Konvertierung in das IEEE 754 Format?
Welches der folgenden Programmierparadigmen wird NICHT explizit von C++ unterstützt?
Welches der folgenden Programmierparadigmen wird NICHT explizit von C++ unterstützt?
Eine vorläufige Mantisse ist 11010.011
(binär). Wie lautet die Mantisse in wissenschaftlicher Notation unter Berücksichtigung der IEEE 754 Norm?
Eine vorläufige Mantisse ist 11010.011
(binär). Wie lautet die Mantisse in wissenschaftlicher Notation unter Berücksichtigung der IEEE 754 Norm?
Ein Exponent hat den Wert 5. Welchen Wert hat der biased Exponent im IEEE 754 Format?
Ein Exponent hat den Wert 5. Welchen Wert hat der biased Exponent im IEEE 754 Format?
In welchem Jahrzehnt begann die Entwicklung von C++ unter der Leitung von Bjarne Stroustrup?
In welchem Jahrzehnt begann die Entwicklung von C++ unter der Leitung von Bjarne Stroustrup?
Welche der folgenden Aussagen beschreibt C++ am treffendsten?
Welche der folgenden Aussagen beschreibt C++ am treffendsten?
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?
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?
Auf welcher Programmiersprache basiert C++?
Auf welcher Programmiersprache basiert C++?
Welcher der folgenden Aspekte steht im Fokus der Vorlesung 'Algorithmen und Datenstrukturen' bezüglich C++?
Welcher der folgenden Aspekte steht im Fokus der Vorlesung 'Algorithmen und Datenstrukturen' bezüglich C++?
Was ist das Ergebnis der Berechnung 4!
?
Was ist das Ergebnis der Berechnung 4!
?
Welche der folgenden Aussagen über die Berechnung der Fakultät einer natürlichen Zahl n ist korrekt?
Welche der folgenden Aussagen über die Berechnung der Fakultät einer natürlichen Zahl n ist korrekt?
Warum ist praktische Übung besonders wichtig beim Erlernen von C++?
Warum ist praktische Übung besonders wichtig beim Erlernen von C++?
Welche der folgenden Aussagen beschreibt am besten den Vorteil des Algorithmus 2 im Vergleich zu Algorithmus 1 zur Berechnung der Fakultät?
Welche der folgenden Aussagen beschreibt am besten den Vorteil des Algorithmus 2 im Vergleich zu Algorithmus 1 zur Berechnung der Fakultät?
Welches der folgenden Ziele ist beim Programmieren am wichtigsten, um die Wartbarkeit und Zuverlässigkeit des Codes zu gewährleisten?
Welches der folgenden Ziele ist beim Programmieren am wichtigsten, um die Wartbarkeit und Zuverlässigkeit des Codes zu gewährleisten?
Betrachten Sie den gegebenen C++-Code zur Berechnung der Fakultät. Welche Art von Schleife wird verwendet?
Betrachten Sie den gegebenen C++-Code zur Berechnung der Fakultät. Welche Art von Schleife wird verwendet?
Was ist das Ergebnis des bitweisen UND-Operators (&
) angewendet auf die Dezimalzahlen 25 und 28?
Was ist das Ergebnis des bitweisen UND-Operators (&
) angewendet auf die Dezimalzahlen 25 und 28?
Welchen Zweck hat der bitweise ODER-Operator (|
) im Kontext der Zustandsbeschreibung, wie im Beispiel mit carState
?
Welchen Zweck hat der bitweise ODER-Operator (|
) im Kontext der Zustandsbeschreibung, wie im Beispiel mit carState
?
Was passiert, wenn eine Variable innerhalb eines Blocks deklariert wird?
Was passiert, wenn eine Variable innerhalb eines Blocks deklariert wird?
Welche der folgenden Aussagen beschreibt korrekt, wie das Vorzeichenbit in der Zweierkomplementdarstellung die Skala der übrigen Bits beeinflusst?
Welche der folgenden Aussagen beschreibt korrekt, wie das Vorzeichenbit in der Zweierkomplementdarstellung die Skala der übrigen Bits beeinflusst?
In welchem Gültigkeitsbereich sollten Variablen und Konstanten sparsam eingesetzt werden?
In welchem Gültigkeitsbereich sollten Variablen und Konstanten sparsam eingesetzt werden?
Wie wird die Zweierkomplementdarstellung einer negativen Zahl -z aus der positiven Zahl z berechnet?
Wie wird die Zweierkomplementdarstellung einer negativen Zahl -z aus der positiven Zahl z berechnet?
Welche Aussage beschreibt am besten die Verwendung von Blöcken in der strukturierten Programmierung?
Welche Aussage beschreibt am besten die Verwendung von Blöcken in der strukturierten Programmierung?
Gegeben sei eine 4-Bit Zweierkomplementdarstellung. Welchen Wert hat die Zahl 1111
?
Gegeben sei eine 4-Bit Zweierkomplementdarstellung. Welchen Wert hat die Zahl 1111
?
Welchen Vorteil bietet die Zweierkomplementdarstellung gegenüber anderen Methoden zur Darstellung von vorzeichenbehafteten Zahlen?
Welchen Vorteil bietet die Zweierkomplementdarstellung gegenüber anderen Methoden zur Darstellung von vorzeichenbehafteten Zahlen?
Was bedeutet (a = b) mod N
in Bezug auf ganze Zahlen a, b ∈ ℤ?
Was bedeutet (a = b) mod N
in Bezug auf ganze Zahlen a, b ∈ ℤ?
Welche Aussage ist korrekt bezüglich des Zahlenkreises für 3 Bits in der Zweierkomplementdarstellung?
Welche Aussage ist korrekt bezüglich des Zahlenkreises für 3 Bits in der Zweierkomplementdarstellung?
Was ist das Ergebnis der folgenden Operation in der Zweierkomplementdarstellung mit 4 Bits: 0101 + 1011
?
Was ist das Ergebnis der folgenden Operation in der Zweierkomplementdarstellung mit 4 Bits: 0101 + 1011
?
Warum ist es wichtig, die Anzahl der Bits bei der Verwendung der Zweierkomplementdarstellung festzulegen?
Warum ist es wichtig, die Anzahl der Bits bei der Verwendung der Zweierkomplementdarstellung festzulegen?
Warum ist die einfache Übersetzung des Morsecodes in einen Binärcode (Punkt = 0, Strich = 1) problematisch?
Warum ist die einfache Übersetzung des Morsecodes in einen Binärcode (Punkt = 0, Strich = 1) problematisch?
Was ist das Hauptziel der Huffman-Codierung?
Was ist das Hauptziel der Huffman-Codierung?
Was besagt die Fano-Bedingung im Kontext der Codierung?
Was besagt die Fano-Bedingung im Kontext der Codierung?
Wie löst die Huffman-Codierung das Problem der Mehrdeutigkeit, das bei einfachen Codierungen auftreten kann?
Wie löst die Huffman-Codierung das Problem der Mehrdeutigkeit, das bei einfachen Codierungen auftreten kann?
In welcher Reihenfolge werden die Zeichen bei der Huffman-Codierung sortiert?
In welcher Reihenfolge werden die Zeichen bei der Huffman-Codierung sortiert?
Was passiert im zweiten Schritt des Huffman-Algorithmus?
Was passiert im zweiten Schritt des Huffman-Algorithmus?
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?
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?
Welche Aussage trifft auf die resultierenden Codes bei Anwendung der Huffman-Codierung zu?
Welche Aussage trifft auf die resultierenden Codes bei Anwendung der Huffman-Codierung zu?
Flashcards
Vorzeichen-Betrag Darstellung
Vorzeichen-Betrag Darstellung
Höchstwertiges Bit zeigt Vorzeichen (0=+, 1=-), Rest codiert den Betrag.
Probleme der VZB-Darstellung
Probleme der VZB-Darstellung
Doppelte Null (+0, -0) und erschwerte Addition.
Negative Zahlen in VZB
Negative Zahlen in VZB
Bei negativem Vorzeichenbit wird von den übrigen Stellen in die negative Richtung gezählt.
Doppelte Repräsentation der Null
Doppelte Repräsentation der Null
Signup and view all the flashcards
Addition in VZB-Darstellung
Addition in VZB-Darstellung
Signup and view all the flashcards
Addition gleiches Vorzeichen (VZB)
Addition gleiches Vorzeichen (VZB)
Signup and view all the flashcards
Überlaufbehandlung (VZB Addition)
Überlaufbehandlung (VZB Addition)
Signup and view all the flashcards
Uneindeutigkeit der VZB
Uneindeutigkeit der VZB
Signup and view all the flashcards
Modulo-Operation
Modulo-Operation
Signup and view all the flashcards
Vorzeichenbit im Zweierkomplement
Vorzeichenbit im Zweierkomplement
Signup and view all the flashcards
Zweierkomplement bilden
Zweierkomplement bilden
Signup and view all the flashcards
Zweierkomplement-Negation
Zweierkomplement-Negation
Signup and view all the flashcards
Vorzeichenwechsel (2K)
Vorzeichenwechsel (2K)
Signup and view all the flashcards
100 (3-Bit, 2K)
100 (3-Bit, 2K)
Signup and view all the flashcards
-z (Zweierkomplement)
-z (Zweierkomplement)
Signup and view all the flashcards
z + z (2K)
z + z (2K)
Signup and view all the flashcards
Morsealphabet-Grundidee
Morsealphabet-Grundidee
Signup and view all the flashcards
Fano-Bedingung
Fano-Bedingung
Signup and view all the flashcards
Huffman-Codierung
Huffman-Codierung
Signup and view all the flashcards
Entropie-Codierung
Entropie-Codierung
Signup and view all the flashcards
Ziel der Huffman-Codierung
Ziel der Huffman-Codierung
Signup and view all the flashcards
Charakteristik der Huffman-Codes
Charakteristik der Huffman-Codes
Signup and view all the flashcards
Schritt 1 der Huffman-Codierung
Schritt 1 der Huffman-Codierung
Signup and view all the flashcards
Schritt 2 der Huffman-Codierung
Schritt 2 der Huffman-Codierung
Signup and view all the flashcards
IEEE 754
IEEE 754
Signup and view all the flashcards
Vorzeichen (s)
Vorzeichen (s)
Signup and view all the flashcards
Exponent (e)
Exponent (e)
Signup and view all the flashcards
Mantisse (m)
Mantisse (m)
Signup and view all the flashcards
Biased Notation
Biased Notation
Signup and view all the flashcards
Gleitkommazahl Konvertierung
Gleitkommazahl Konvertierung
Signup and view all the flashcards
Magic Number (127)
Magic Number (127)
Signup and view all the flashcards
Dezimal zu Binär (Nachkomma)
Dezimal zu Binär (Nachkomma)
Signup and view all the flashcards
Fakultät (n!) Definition
Fakultät (n!) Definition
Signup and view all the flashcards
Bitweise Operatoren: Zweck
Bitweise Operatoren: Zweck
Signup and view all the flashcards
Bitweise Operatoren: Beispiel
Bitweise Operatoren: Beispiel
Signup and view all the flashcards
Bitweise ODER (|) Verwendung
Bitweise ODER (|) Verwendung
Signup and view all the flashcards
Bitweise UND (&) Verwendung
Bitweise UND (&) Verwendung
Signup and view all the flashcards
Block Definition
Block Definition
Signup and view all the flashcards
Gültigkeitsbereich (Scope) Definition
Gültigkeitsbereich (Scope) Definition
Signup and view all the flashcards
Globale Variablen: Nutzung
Globale Variablen: Nutzung
Signup and view all the flashcards
Was ist C++?
Was ist C++?
Signup and view all the flashcards
C++ Programmierparadigmen
C++ Programmierparadigmen
Signup and view all the flashcards
Was bedeutet 'hybride Programmiersprache' in Bezug auf C++?
Was bedeutet 'hybride Programmiersprache' in Bezug auf C++?
Signup and view all the flashcards
Fokus in Algorithmen und Datenstrukturen (C++)
Fokus in Algorithmen und Datenstrukturen (C++)
Signup and view all the flashcards
Definition: Fakultät n!
Definition: Fakultät n!
Signup and view all the flashcards
Imperativ vs. Objektorientiert
Imperativ vs. Objektorientiert
Signup and view all the flashcards
Herausforderung in C++: Zeiger
Herausforderung in C++: Zeiger
Signup and view all the flashcards
Wer hat C++ entwickelt?
Wer hat C++ entwickelt?
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 Klassestd::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) oderfalse
(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:
- Die aktuelle Befehlsadresse wird aus dem Befehlszählregister in den Adressbus gelegt.
- Der Befehl wird in das Befehlsregister geladen.
- Der Befehlszählregister wird erhöht oder bei einem Sprungbefehl mit einer neuen Adresse geladen.
- Der Befehl wird dekodiert und interpretiert.
- Für jede Elementaroperation werden die Operanden bereitgestellt, die Operationen ausgeführt und die Ergebnisse im Akkumulator gespeichert
- 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.