[Kapitel] Hinzufügen der Kapitel

This commit is contained in:
Andre Meyering 2017-08-01 14:40:40 +02:00
commit b03172ff7b
7 changed files with 4141 additions and 0 deletions

9
Kapitel/00_Vorwort.tex Normal file
View file

@ -0,0 +1,9 @@
\chapter{Vorwort}
Herr Röthig schreibt alles, was für seine Klausuren von Bedeutung ist, an die Tafel. Es ist daher nur zu empfehlen, alles mitzuschreiben, da er kein Skript besitzt und auch keinen Foliensatz. Der Unterricht ist im Vergleich zu anderen Dozenten unterscheidet sich darin, dass während der Klausur keine Hilfsmittel verwendet werden dürfen. Dafür besteht die Klausur zu 90\% nur aus Abfrageaufgaben.
Dieses Skript enthält \textit{alles}, was Herr Röthig 2017 an Wissen voraussetzt. Auf den letzten Seiten dieses Skripts findet sich zusätzlich noch eine Übungsklausur. Die Klausuren unterscheiden sich jedes Jahr nur um einige wenige Aufgaben. Ist man zwei, drei Übungsklausuren durchgegangen, so ist die Klausur einfach zu bestehen.
Zusammen mit meinem Kurs TINF16B2 haben wir dieses Skript ausgedruckt und korrigiert. Inhaltliche Fehler sollten daher (fast) keine mehr enthalten sein.
Ich wünsche dir viel Erfolg bei Herrn Röthig im Fach Digitaltechnik (Technische Informatik). Solltest du diese Skript erweitern wollen, so kannst du dich an \href{mailto:dhbw@andremeyering.de}{dhbw@andremeyering.de} wenden.

48
Kapitel/01_Einstieg.tex Normal file
View file

@ -0,0 +1,48 @@
\chapter{Einstieg in die Vorlesung}
\begin{tabular}{ll}
Dozent: & Prof. Dr. Jürgen Röthig \\
Modul: & Technische Informatik \RNum{1} \\
Fach: & Digitaltechnik
\end{tabular}
\section{Digitaltechnik (Vorlesung)}
\begin{itemize}[noitemsep]
\item 48h Präsenzzeit, 150h Workload $\Rightarrow$ 102h Selbststudium
\item Klausur (dieses Semester): 120min (evtl. 90min; ohne Hilfsmittel)
\item kein Skript, kein Foliensatz
\end{itemize}
\subsection{Übersicht}
\begin{enumerate}[noitemsep]
\item Begriffe, Motivation
\item Codierung, insbesondere Zahlencodierung
\item Boolesche Algebra, insbesondere Schaltalgebra
\item Schaltnetze
\item Schaltwerk
\item Halbleiterspeicher
\end{enumerate}
\subsection{Was ist analog/digital?}\index{analog}\index{digital}
\begin{table}[h]
\begin{tabular}{p{74mm}|p{74mm}}
\toprule
\rule[-1ex]{0pt}{2.5ex} Digital & Analog \\
\midrule
\rule[-1ex]{0pt}{2.5ex} Werte diskret & Werte kontinuierlich \\
\midrule
\rule[-1ex]{0pt}{2.5ex} in einem endlichen Wertebereich gibt es nur eine endliche Zahl von Werten; aber trotzdem unendliche Wertemenge möglich $\Rightarrow$ Bsp. natürliche Zahlen & unendlich viele Zwischenwerte zwischen zwei beliebigen (ungleichen) Werten \\
\midrule
\rule[-1ex]{0pt}{2.5ex} oft auch zeitdiskret & überlicherweise auch zeitkontinuierlich \\
\midrule
\rule[-1ex]{0pt}{2.5ex} Arbeitsweise der heute üblichen Rechner & die reale Welt (alles!) \\
\bottomrule
\end{tabular}
\caption{Übersicht Digital/Analog}
\end{table}

93
Kapitel/02_Codierung.tex Normal file
View file

@ -0,0 +1,93 @@
\chapter{Codierung}\index{Codierung}
Was versteht man unter Codierung?
\begin{description}
\item[Codierung] Codierung ist die Darstellung von Informationen (analoge oder digitale Infos möglich) mit einem Alphabet (codierte Informationen sind bei uns also immer digital!).
\item[Alphabet] endliche Menge von Symbolen.
\item[Signal] physikalisch messbare Größe (\zB Spannung, Strom)
\end{description}
Es gibt verschiedene Codierungsgruppen
\begin{enumerate}[noitemsep]
\item \textbf{Zahlencodierung}: Es werden Zahlenwerte dargestellt
\item \textbf{Zeichencodierung/Textcodierung}: Es werden Zeichen der Schriftsprache dargestellt
\begin{itemize}[noitemsep]
\item Unicode\index{Unicode} in Form von \textit{UTF-8} oder \textit{UTF-16} (potenziell unbeschränkt;
erste 128 Zeichen entsprechen der ASCII Codierung)
\item \textit{ASCII} (7-bit Code: 128 Zeichen)
\item \textit{ISO-8859-X} (8-bit, 256 Zeichen; ASCII Zeichensatz, nur um 1 bit erweitert)
$x \in \{1,2,3,...,15,...\}$
\begin{enumerate}[noitemsep]
\item \enquote{$-1 $} ursprüngliche westeuropäische Variante
\item \enquote{$-15$} heutige westeuropäische Variante (inkl. € Euro Zeichen)
\end{enumerate}
\end{itemize}
\item \textbf{Anwendungscodierung}: Es werden Dokumente einer speziellen Anwendung dargestellt,
\zB \textit{JPEG, MP3, DOCX, ODT, HTML, usw.}
\item \textbf{Verschlüsselung} (Information wird umcodiert, damit sie ohne Kentniss des
Verschlüsselungsverfahrens \enquote{informationslos}, also wertlos ist.)
\item \textbf{Signalcodierung}: Zuordnung von (abstrakter) Info zu einem Signal \newline
$\Rightarrow$ im späteren Verlauf der Vorlesung dazu mehr \ldots
\end{enumerate}
$\Rightarrow$ \textbf{Codierung ist wichtig für Speicherung oder Übertragung von Informationen!}
\section{Zahlencodierung - Abzählsysteme}
\begin{description}
\item[Fingerabzählsystem] $Symbolmenge \{ Finger \}$ \newline
Wert = Anzahl gezeigter Finger \newline
Jedes Symbol hat einen Symbolwert, nämlich hier $ Finger \overset{\wedge}{=} 1$ \newline
Der Gesamtwert ist die Summe aller dargestellten Symbolwerte \newline
\textbf{Hinweis}: Potenziell kann jedes Symbol mehrfach auftreten!
Bewertung:
\begin{itemize}[noitemsep]
\item $\oplus$ Darstellung und Verständnis extrem einfach.
\item $\oplus$ Addition und Subtraktion extrem einfach
\item $\ominus$ sehr kleiner beschränkter Wertebereich (max. 10 [Finger])
\item $\ominus$ keine negativen Zahlen
\item $\ominus$ keine Teile von ganzen Zahlenwerten
\item \textcircled{$\pm$} Multiplikation (und Division) mit erhöhtem Aufwand darstellbar
\item $\ominus$ komplexere Rechenoperationen nicht darstellbar
\end{itemize}
\item[Strichliste] $Symbolmenge \{ I \}$ \newline
Wert: $| = 1$ \newline
Bewertung wie beim Fingerabzählsystem, zusätzlich:
\begin{itemize}[noitemsep]
\item $\oplus$ Substraktion ist ein wenig schwieriger durch das Entfernen von Strichen (aber immer noch einfach)
\item $\ominus$ beschränkte Übersichtlichkeit: ab etwa 10 gleichen Symbolen unübersichtlich
\item $\oplus$ unbeschränkter Wertebereich nach oben, \dash beliebig große Zahlen (aber weiterhin keine negativen Zahlen und keine Nicht-Ganzzahlen)
\end{itemize}
\item[Lattenzaunsystem] \hfill\newline
Strichliste mit Querstrich $\rightarrow$ jeder 5. Strich wird als Querstrich über die vorangegangenen vier Striche notiert. \newline
$Symbole \{ |, \bcancel{||||} \}$ $\Rightarrow$ zwei verschiedene Symbole
Wert (|) = 1; Wert (\bcancel{||||}) = 5 \newline
\textbf{Regel}: Symbole mit höherer Wertigkeit stehen immer link ($\rightarrow$ Wertigkeit absteigend)
Bewertung wie bei der Strichliste, zusätzlich:
\begin{itemize}[noitemsep]
\item $\ominus$ Verständnis erschwert
\item $\oplus$ etwas übersichtlicher
\item $\pm/-$ Übersichtlichkeit beschränkt auf Werte bis etwa $10\times 5 = 50$
\item $\ominus$ erschwerte Addition und Subtraktion aufgrund von Umsortierung und Neugruppierung bzw. Entgruppierung
\end{itemize}
\item[römisches Zahlensystem] \hfill\newline
Symbole und Symbolwerte: $\RNum{1} = 1$, $V = 5$, $X = 10$, $L = 50$, $C = 100$, $D = 500$, $M = 1000$ \newline
\textbf{Spezialregel}: ein Symbol mit niedrigerer Wertigkeit notiert \textit{vor} einem Symbol mit höherer Wertigkeit $\Rightarrow$ Symbolwert wird abgezogen.
Bewertung:
\begin{itemize}[noitemsep]
\item $\oplus$ potenziell übersichtlich bis etwa $10\times 1000 = 10.000$
\item $\ominus$ Einfachheit und Verständnis
\item $\ominus$ Addition und Subtraktion recht komplex
\end{itemize}
\end{description}

924
Kapitel/03_SWS.tex Normal file
View file

@ -0,0 +1,924 @@
\chapter{\acl{SWS}}\index{Stellenwertsysteme}
\acf{SWS} sind gekennzeichnet durch eine Basis $b$, wobei $b \in \mathbb{N}\setminus\{0,1\}$. \newline
Der Aufbau einer n-stelligen Zahl ist: $z_{n-1}, z_{n-2}, \ldots, z_2, z_1, z_0$ mit $z \in \{k-1, \ldots, 0\}$. \newline
Der Wert der Zahl ist die Summe aus $Ziffernwert (Symbolwert) \times Stellenwert$
$\text{Anzahl(Symbole)} = b$ ($b$ = Basis, bei dezimal $b = 10$) \newline
Wert(kleinstwertigstes Symbol) = $0$ \newline
Wert(höchstwertigstes Symbol) = $b - 1$
$\Rightarrow$ $b \in \mathbb{N} \setminus \{0,1\}$ \dash $b > 1$ bzw. $b \geq 2$ \newline
$\Rightarrow$ Es gibt unendlich viele (aber abzählbar viele) \acl{SWS}
\begin{tabular}{rlll}
\textbullet & Dezimalsystem & $b = 10$ & $\text{Symbolmenge} \, \{0,1,2,3,4,5,6,7,8,9\}$ \\
\textbullet & Dual-/Binärsystem & $b = 2$ & $\text{Symbolmenge} \, \{0,1\}$\\
\textbullet & Hexadezimalsystem & $b = 16$ & $\text{Symbolmenge} \,\{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F\}$ \\
\textbullet & Oktalsystem: & $b = 8$ & $\text{Symbolmenge} \, \{0,1,2,3,4,5,6,7\}$ \\
\textbullet & Tetralsystem: & $b = 4$ & $\text{Symbolmenge} \, \{0,1,2,3\}$
\end{tabular}
\begin{Hinweis}
Die Bestimmung von Werten in Stellenwertsystemen kann über folgende Formel erfolgen:
\begin{equation}
\label{eq:umrechnung_b_zu_10}
Wert(z_{n-1}, z_{n-2}, \ldots, z_1, z_0) = \sum\limits_{i=0}^{n-1} |z_i| \cdot b^i = z_{n-1} \cdot b^{n-1} + z_{n-2} \cdot b^{n-2} + \ldots + z_1 \cdot b^1 + z_0 \cdot b^0
\end{equation}
\end{Hinweis}
\textit{Hinweis}: Es gibt unendlich viele \acl{SWS}.
\section{Umrechnung verschiedener Basen}\index{Umrechnung}
\subsection{Umrechnung von $b$ nach $b=10$}
Die Umrechnung von einer beliebigen Basis $b$ zur Basis $b=10$ (\enquote{Dezimalsystem}) kann über die Formel \ref{eq:umrechnung_b_zu_10} erfolgen.
\textbf{Beispiel}
\begin{equation}
\begin{aligned}
11010_2 & = 0\cdot 2^0 + 1\cdot 2^1 + 0\cdot 2^2 + 1\cdot 2^3 + 1\cdot 2^4 \\
& = 26_{10}
\end{aligned}
\end{equation}
\subsection{Umrechnung von $b_1=10$ nach $b$ (beliebiges System)}
Die Umrechnung vom Dezimalsystem in ein anderes System funktioniert durch Ganzzahldivision und Restebildung (Division durch Zielbasis).
\textbf{$26_{10} = ?_2$ mit $b_2=2$}
\columnratio{0.4}
\begin{paracol}{2}
\begin{equation*}
\begin{aligned}
26:2 &= 13 & R0 \rightarrow z_0 \\
13:2 &= 6 & R1 \rightarrow z_1 \\
6:2 &= 3 & R0 \rightarrow z_2 \\
3:2 &= 1 & R1 \rightarrow z_3 \\
1:2 &= \textcolor{red}{0} & R1 \rightarrow z_4 \\
0:2 &= \textcolor{red}{0} & R0 \rightarrow z_5
\end{aligned}
\end{equation*}
\switchcolumn
Die Abbruchbedingung ist erfüllt, wenn die Division $0$ ergibt.
Weitere Durchläufe sind möglich, führen jedoch nur zu führenden Nullen.
Das Ergebnis ist somit $26_{10}=11010_2$.
\end{paracol}
\textbf{Beispiel $42_{10} = ?_7$ mit $b_2=7$}
\columnratio{0.55}
\begin{paracol}{2}
\begin{equation*}
\begin{aligned}
42:7 &= 6 & R0 \rightarrow z_0 \\
6:7 &= \textcolor{red}{0} & R6 \rightarrow z_1
\end{aligned}
\end{equation*}
\switchcolumn
Das Ergebnis ist somit $42_{10}=60_7$.
\textbf{Probe}: $60_7=0\cdot 7^0 + 6\cdot 7^1 = 42_{10}$ \textcolor{green}{\Large{$\checkmark$}}
\end{paracol}
\textbf{Beispiel $0815_{10} = ?_8$ mit $b_2=8$}
\columnratio{0.55}
\begin{paracol}{2}
Umrechnung von Dezimalsystem in Oktalsystem.
\begin{equation*}
\begin{aligned}
815:8 &= 101 & R7 \rightarrow z_0 \\
101:8 &= 12 & R5 \rightarrow z_1 \\
12:8 &= 1 & R4 \rightarrow z_2 \\
1:8 &= \textcolor{red}{0} & R1 \rightarrow z_3 \\
\end{aligned}
\end{equation*}
\switchcolumn
Das Ergebnis ist somit $815_{10}=1457_8$.
\begin{flalign*}
& \textbf{Probe}: & & 7\cdot 8^0 + 5\cdot 8^1 + 4\cdot 8^2 + 1\cdot 8^3 & \\
& & = & 7 + 40 + 256 + 512 & \\
& & = & 815 \textcolor{green}{\Large{\checkmark}} &
\end{flalign*}
\end{paracol}
\textbf{Hinweis:} Bei Klausuren den Rechenweg mit aufschreiben. Dies wird fast immer gefordert!
\subsection{Gängige Basen}
\begin{tabular}{rlll}
\textbullet & $b = 10$ & \enquote{Dezimalsystem} & $z \in \{0,1,2,3,4,5,6,7,8,9\}$ \\
\textbullet & $b = 2$ & \enquote{Binärsystem} & $z \in \{0,1\}$ \\
& \multicolumn{3}{l}{$\Rightarrow$ Computer stellen Zahlen im Binärsystem dar und rechnen im Binärsystem} \\
\textbullet & $b = 8$ & \enquote{Oktalsystem} & $z \in \{0,1,2,3,4,5,6,7\}$ \\
\textbullet & $b = 16$ & \enquote{Hexadezimalsystem} & $z \in \{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F\}$ \\
& \multicolumn{3}{l}{$\Rightarrow$ Wert von $|A| = 10$, $|B| = 11$, $|C| = 12$, $|D| = 13$, $|E| = 14$, $|F| = 15$} \\
\end{tabular}
\subsection{Umrechnung von $b_1$ nach $b_2$ ($b_1\neq 10 \wedge b_2\neq 10$)}
Die Umrechnung von einer Basis $b_1$ in eine andere Basis $b_2$ ($b_1 \neq 10$, $b_2 \neq 10$) findet üblicherweise über das Dezimalsystem statt, also in 2 Schritten!
Eine direkte Umrechnung wäre über die Ganzzahldivision durch $b_2$ möglich, wenn wir diese Umrechnung im System zur Basis $b_1$ durchführen würden.
Eine direkte Umrechnung ist auch in Spezialfällen möglich, nämlich dann, wenn die eine Zahl eine Potenz der anderen ist (\zB $b_1=2$ und $b_2=16$, vgl.~\autoref{tbl:hexToDez}).
\begin{itemize}[noitemsep]
\item $2^4=16$ \dash 4 Stellen im Binärsystem entsprechen einer Stelle im Hexadezimalsystem
\item $2^3=8 $ \dash 3 Stellen im Binärsystem entsprechen einer Stelle im Oktalsystem
\end{itemize}
\begin{table}
\centering
\begin{tabular}{c|c|c}
Ziffer & Wert & Binär \\
\midrule
0 & 0 & 0000 \\
1 & 1 & 0001 \\
2 & 2 & 0010 \\
3 & 3 & 0011 \\
4 & 4 & 0100 \\
5 & 5 & 0101 \\
6 & 6 & 0110 \\
7 & 7 & 0111 \\
\end{tabular}
\begin{tabular}{c|c|c}
Ziffer & Wert & Binär \\
\midrule
8 & 8 & 1000 \\
9 & 9 & 1001 \\
A & 10 & 1010 \\
B & 11 & 1011 \\
C & 12 & 1100 \\
D & 13 & 1101 \\
E & 14 & 1110 \\
F & 15 & 1111 \\
\end{tabular}
\caption{Werte im Hexadezimalsystem}
\label{tbl:hexToDez}
\end{table}
\subsection[Andere Basen bei Computern]{Wozu das Oktal- bzw. Hexadezimalsystem in \textit{computernahen} Umgebungen?}
\begin{itemize}[noitemsep]
\item 3 (bzw. 4) Ziffern im Binärsystem entsprechen einer Ziffer im
Oktal- bzw. Hexadezimalsystem
\item einfache stellenweise Umrechnung
\item deutlich bessere Übersichtlichkeit
\end{itemize}
\vspace{-6mm}
\begin{align*}
\underbrace{0011}_{3} \underbrace{1100}_{C} \underbrace{1010}_{A} \underbrace{1111_2}_{F_{16}}
& \qquad &
\underbrace{011}_{3} \underbrace{110}_{6} \underbrace{010}_{2} \underbrace{101}_{5}\underbrace{111_2}_{7_8}
\end{align*}
\subsection{Umwandlung in andere \acs{SWS}}
Eine direkte Umwandlung ist auch möglich, wenn $b_1 = b^{n}$ und $b_{2}=b^{m}$ \newline
(es gibt ein $b$ mit $b_1=b^n$, $b_2=b^m$, $n,m \in \mathbb{N}, b \in \mathbb{N}\setminus\{1\}$)
\begin{paracol}{2}
\textbf{Beispiel}: Oktal und Hexadezimalsystem:
\hspace*{6mm} $b_1=8=2^3$ \newline
\hspace*{6mm} $b_2=16=2^4$
\switchcolumn
\begin{displaymath}
\begin{aligned}
b_1^n &= b_2^m \\
8^4 &= 16^3 \\
2^{3^4} &= 2^{4^3} \\
2^{12} &= 2^{12} \textcolor{green}{\Large{\checkmark}}
\end{aligned}
\end{displaymath}
\end{paracol}
$\Rightarrow$ 4 Stellen im Oktalsystem entsprechen 3 Stellen im Hexadezimalsystem.
$\Rightarrow$ dann ist direkt eine Umrechnung der Ziffernblöcke möglich!
Wenn $b_1^n = b_2^m$, dann entsprechen $n$ Stellen im System zur Basis $b_1$ genau $m$ Stellen im System zur Basis $b_2$ \newline
$\Rightarrow$ dann auch Umrechnung über Tabelle mit $b_1^n$ oder $b_2^m$ [Bei Oktal $\Leftrightarrow$ Hexdezimal: $4096$ ($2^{4^3}$)] Zeilen möglich $\Rightarrow$ zu Groß für Erstellung der Tabelle. Deshalb wieder Umrechnung über Zwischensystem, aber nicht in das Dezimalsystem, sondern in das System zur Basis $b$ mit $b^m=b_1$ und $b^n=b_2$
\section{Bewertung Stellenwertsysteme}
\begin{itemize}[noitemsep]
\item $\oplus$ Übersichtlichkeit der Zahlendarstellung ist deutlich besser als bei Abzählsystemen (exponentielles Wachstum mit der Basis vs. lineares Wachstum mit Wert des höchstwertigen Symbols). Wird erst unübersichtlich ab $\sim b^{10}$
\item $\pm$ erhöhte Komplexität, bis das System verstanden wurde. Danach ist der Umgang mit dem System gut möglich.
\item $\oplus$ unbeschränkter Wertebereich (auch Erweiterung auf negative, nicht ganze Zahlen,\ldots)
\item $\oplus$ alle Grundrechenarten (Addition, Subtraktion, Multiplikation, Division) sind mit moderatem Aufwand und mäßig komplexen Verfahren machbar
\item $\ominus$ Übersichtlichkeit sinkt mit steigender Anzahl veschiedener/voneinander zu unterscheidener Symbole und damit mit der Basis. \newline
$\Rightarrow$ das Ganze ist also auch eine Sache der Gewohnheit!
\end{itemize}
\section{Darstellung negativer Zahlen}
\subsection{Betrag und Vorzeichen}
$ 42 \rightarrow -42$ bzw. $+42 \rightarrow -42$ (positives Vorzeichen wird [meist] weggelassen) \newline
Nachteil: Addition von negativen Zahlen benötigt ein anderes Verfahren
als die Addition von Positiven Zahlen (unpraktisch für Computer).
\subsection{\href{https://de.wikipedia.org/wiki/Einerkomplement}{\textbf{Einerkomplement}}}\index{Einerkomplement}
Die erste \enquote{Ziffer} gibt das Vorzeichen an ($0 \overset{\wedge}{=} positiv$, $1 \overset{\wedge}{=} negativ$), der Rest der Ziffern ist bei negativen Zahlen der komplementierte Betrag in Binärdarstellung (komplementiert: $1=\lnot 0$ und $0=\lnot 1$, also \enquote{invertiert}) \newline
\textit{Wichtig}: Vorher genaue Stellenanzahl festlegen (wegen \enquote{erste Ziffer}).
\pagebreak
\textbf{Beispiel}: 1. Umcodierung ins Binärsystem
\begin{paracol}{2}
\begin{equation*}
\begin{aligned}
42:2 &= 21 & R0 \rightarrow z_0 \\
21:2 &= 10 & R1 \rightarrow z_1 \\
10:2 &= 5 & R0 \rightarrow z_2 \\
5:2 &= 2 & R1 \rightarrow z_3 \\
2:2 &= 1 & R0 \rightarrow z_4 \\
1:2 &= \textcolor{red}{\textbf{0}} & R1 \rightarrow z_5 \\
& 42_{10} = 101010_2
\end{aligned}
\end{equation*}
\switchcolumn
\begin{equation*}
\begin{aligned}
13:2 &= 6 & R1 \rightarrow z_0 \\
6:2 &= 3 & R0 \rightarrow z_1 \\
3:2 &= 1 & R1 \rightarrow z_2 \\
1:2 &= \textcolor{red}{\textbf{0}} & R1 \rightarrow z_3 \\
& 13_{10} = 1101_2
\end{aligned}
\end{equation*}
\end{paracol}
\begin{tabular}{rllll}
\textbullet & $42_{10} $ & $ = 101010_2 $ & $= 0101010_2$ & (mit Vorzeichen)\\
\textbullet & $13_{10} $ & $ = 1101_2 $ & $= 0001101_2$ & (mit Vorzeichen, auch sieben Stellen)\\
\textbullet & $-42_{10} $ & & $ = 1010101_2$ & (1er-Komplement)\\
\textbullet & $-13_{10} $ & & $ = 1110010_2$ & (1er-Komplement)\\
\end{tabular}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textbf{\textsf{Addition:}}
Für die Addition der beiden obigen Zahlen reichen 7 Stellen im Binärsystem aus (da $42+13 < 2^6 \Leftrightarrow 55 < 64$).
\medskip
\columnratio{0.3}
\begin{paracol}{2}
\begin{tabular}{l|c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
\enskip $-42$ & & 1 & 0 & 1 & 0 & 1 & 0 & 1 \\
\enskip $+13$ & + & 0 & 0 & 0 & 1 & 1 & 0 & 1 \\
Übertrag & & & 1 & 1 & 1 & & 1 & \\
\hline
& & \textcolor{blue}{\textbf{1}} & 1 & 0 & 0 & 0 & 1 & 0
\end{tabular}
\switchcolumn
Da die erste Ziffer eine \textbf{\textcolor{blue}{1}} ist, handelt es sich um eine negative Zahl.
Deshalb muss vom Ergebnis nun noch das 1er-Komplement gebildet werden. ist.
$=0011101 = \textbf{29} \rightarrow$ Das Ergebnis ist $-29$
\end{paracol}
\columnratio{0.3}
\begin{paracol}{2}
\begin{tabular}{lc@{\,}|c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
\enskip $+42$ & & & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\
\enskip $-13$ & & + & 1 & 1 & 1 & 0 & 0 & 1 & 0 \\
Übertrag & & 1 & 1 & & & & 1 & & \\
\hline
& & \textcolor{red}{\textbf{1}} & \uline{\textcolor{blue}{\textbf{0}}} & 0 & 1 & 1 & 1 & 0 & 0
\end{tabular}
\switchcolumn
Die rote \textcolor{red}{1} wird ignoriert, weil sie nicht in den 7 Stellen enthalten ist.
Da die Zahl positiv ist (siehe \uline{\textcolor{blue}{0}}), muss kein Komplement gebildet werden.
$=0011100 = \textbf{28}$
Hieran erkennt man auch schon den ersten Nachteil des 1er-Komplements: In manchen Fällen ist die Addition offenbar nicht ganz korrekt!
\end{paracol}
In der 1er-Komplement-Darstellung gibt es zudem zwei verschiedene Darstellungen der $0$. Einmal \enquote{$+0$}~$=00000$ und einmal \enquote{$-0$}~$=11111$ (zweiter Nachteil).
\textbf{Hinweis}: Sicherheitshalber hätte man 8 Stellen nehmen können. Dies hätte am falschen Ergebnis jedoch nichts geändert.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textbf{Wertebereiche}
\begin{enumerate}[noitemsep]
\item[a)] bei nicht-negativen, ganzen Binärzahlen mit n Stellen:
\begin{itemize}[noitemsep]
\item kleinste Zahl = 0
\item größte Zahl $= 111\ldots 111$ $(n \times "1") = 2^{n} - 1$
\item $\Rightarrow$ insgesamt $2^n$ verschiedene Zahlen, die dargestellt werden können
\end{itemize}
\item[b)] bei 1er-Komplement-Darstellung mit $n$ Stellen
\begin{itemize}[noitemsep]
\item größte Zahl $= 0111\ldots 111~((n-1) \times "1") = 2^{n-1} - 1$
\item kleinste Zahl $= 100\ldots 000 ((n-1) \times "0")\xrightarrow{\text{1er Komplement}} 0111\ldots 111 = 2^{n-1} - 1$\newline
$\Rightarrow -(2^{n-1} - 1) = -2^{n-1} + 1$
\item $\Rightarrow$ insgesamt $2^{n-1}$ positive Zahlen, $2^{n-1}$ negative Zahlen, sowie die Null, also insgesamt ($2^n - 1$) verschiedene Zahlen, \dash es ist ein Zahlenwert weniger als mit $n$ Stellen möglich, darstellbar (dritter Nachteil).
\end{itemize}
\end{enumerate}
\subsection{\href{https://de.wikipedia.org/wiki/Zweierkomplement}{Zweierkomplement}}\index{Zweierkomplement}
\textit{Bildungsregel}: Komplementierung aller Ziffern und nachfolgender Addition von \enquote{+1} (plus eins) auf das Komplement.
\begin{itemize}[noitemsep]
\item $42_{10} = 0101010_2 \xrightarrow{\text{1er Komplement}} 1010101_2 \xrightarrow{\text{plus 1}} 1010110 = -42_{10}$
\item $13_{10} = 0001101_2 \xrightarrow{\text{1er Komplement}} 1110010_2 \xrightarrow{\text{plus 1}} 1110011 = -13_{10}$
\end{itemize}
\bigskip
\begin{Hinweis}[frametitle={Wichtig für die Klausur}]
\begin{itemize}[noitemsep]
\item (Für das Binärsystem bei negativen Zahlen): Genügend Stellen verwenden (zur Not eine Stelle ungenutzt lassen).
\item \enquote{Welche Berücksichtigung mussten sie bei der Darstellung der Zahlen noch machen?} \newline
$\Rightarrow$ Betrag, Vorzeichen, \ldots
\end{itemize}
\end{Hinweis}
\bigskip
\columnratio{0.3}
\begin{paracol}{2}
\begin{tabular}{lc@{\,}|c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
\enskip $+42$ & & & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\
\enskip $-13$ & & + & 1 & 1 & 1 & 0 & 0 & 1 & 1 \\
Übertrag & & 1 & 1 & & & & 1 & & \\
\hline
& & \textcolor{red}{\textbf{1}} & \uline{\textcolor{blue}{\textbf{0}}} & 0 & 1 & 1 & 1 & 0 & 1
\end{tabular}
\switchcolumn
Die rote \textcolor{red}{1} wird ignoriert, weil sie nicht in den 7 Stellen enthalten ist.
Die Zahl ist positiv (siehe blaue \uline{\textcolor{blue}{0}}).
$=0011101 = 1 + 4 + 8 + 16 = \textbf{29}$
Im Gegensatz zum 1er Komplement ist die Addition in diesem Fall korrekt!
\end{paracol}
\bigskip
\columnratio{0.3}
\begin{paracol}{2}
\begin{tabular}{l|c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
\enskip $-42$ & & 1 & 0 & 1 & 0 & 1 & 1 & 0 \\
\enskip $+13$ & + & 0 & 0 & 0 & 1 & 1 & 0 & 1 \\
Übertrag & & & 1 & 1 & 1 & & & \\
\hline
& & \textcolor{blue}{\textbf{1}} & 1 & 0 & 0 & 0 & 1 & 1
\end{tabular}
\switchcolumn
Da die erste Ziffer eine \textcolor{blue}{\textbf{1}} ist, handelt es sich um eine negative Zahl.
Deshalb muss vom Ergebnis nun noch das Komplement gebildet werden und danach noch 1 aufaddiert werden.
1100011 $\Rightarrow$ 0011100 + 1 $\Rightarrow$ 0011101 $\Rightarrow 1 + 4 + 8 + 16 = 29 \Rightarrow \textbf{-29}$
\end{paracol}
\bigskip
\columnratio{0.3}
\begin{paracol}{2}
\begin{tabular}{l|c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c}
\enskip $-19$ & & 1 & 1 & 1 & 0 & 0 & 1 & 1 \\
\enskip $-42$ & + & 1 & 0 & 1 & 0 & 1 & 1 & 0 \\
Übertrag & 1 & 1 & 1 & & & 1 & & \\
\hline
& (1) & \textcolor{blue}{1} & 0 & 0 & 1 & 0 & 0 & 1
\end{tabular}
\switchcolumn
$1001001_2 \xrightarrow{\text{Komplement}} 0110110_2 \xrightarrow{\text{plus eins}} 0110111_2 \rightarrow 1+2+4+16+32=55_{10}$
Die blaue eins bedeutet, dass es sich um eine negative Zahl handelt. Somit ist das Endergebnis $-55_{10}$
\end{paracol}
\newpage
\begin{enumerate}[noitemsep]
\item Alle Additionsergebnisse sind korrekt \textcolor{green}{\cmark}
\item $-0 = ?$ \newline
Im 2er-Komplement: \newline
$00000000_2$ (positive null) $\xrightarrow{\text{1er~Komplement}} 11111111_2 \xrightarrow{\text{plus eins}} (1)\textcolor{blue}{0}0000000_2$ \newline
Es kommt eine positive \enquote{0} raus. Durch Addieren von eins verhindern wir das Auftreten zweier Nullen!
\item Wertebereich, Beispiel: 8-Stellig
größte Zahl: $\textcolor{blue}{0}1111111_2 = 1+2+4+8+16+32+64 = \textbf{127}$ \newline
kleinste Zahl:: $10000000_2 \xrightarrow{\text{invertieren (wird pos.) / 1er~Komplement}} 011111111 \xrightarrow{\text{plus 1}} \textcolor{red}{1}0000000$. Die rote $1$ ist in diesem Fall die positive $\textbf{128}$, nicht das Vorzeichen!
\item Insgesamt $2^8 = 256$ verschiedene Werte mit 8-Bit.
\item $\ominus$ Nachteil: unsymmetrischer Wertebereich, \dash für die kleinste
(betragsmäßig größte) negative Zahl gibt es kein positives \enquote{Äquivalent}
(eigentlich \enquote{Komplement} im Wertebereich)
\item Computer stellen (ganze) Zahlen (mit einem auch nicht-negativen Wertebereich)
meist im Zweier-Komplement dar.
\end{enumerate}
\section{Darstellung von nicht-ganzen Zahlen}
Darstellung von nicht-ganzen Zahlen (zunächst von nicht-negativen Zahlen). Im folgenden werden verschiedene Darstellungsmöglichkeiten gezeigt.
\subsection{Darstellung als Bruch}\index{Bruch}
$\frac{2}{3}$ oder $5\frac{1}{2}$
\begin{itemize}[noitemsep]
\item $\ominus$ Jede Zahl hat unendlich viele Darstellungen, \zB \newline
$\frac{1}{2} = \frac{2}{4} = \frac{3}{6} = \ldots $, $2 = \frac{2}{1} = \frac{4}{2} = \ldots $
\item $\ominus$ Viele reele Zahlen sind nicht darstellbar (die Zahlen, welche keine rationalen Zahlen sind)
\end{itemize}
\subsection{Festkommadarstellung}\index{Festkommadarstellung}
Neben den Ziffern gibt es ein weiteres Symbol, nämlich das \enquote{Komma} [\enquote{~,~}] (bzw. den Punkt [\enquote{~.~}] im englischen Sprachraum).
\begin{itemize}[noitemsep]
\item jede Zahl hat einen Vorkommaanteil (feste Anzahl $n$ an Vorkommaziffern) und einen Nachkommaanteil (feste Anzahl $m$ an Nachkommaziffern). Dazwischen steht \textit{genau ein} Komma.
\item Darstellung: $z_{n-1}z_{n-2}z_{n-3}\ldots z_{1}z_{0} ~\textbf{,}~ z_{-1}z_{-2}\ldots z_{-m+1}z_{-m}$
\end{itemize}
\subsubsection*{Formel zur Wertbestimmung}
\begin{itemize}[noitemsep]
\item Vorkommaanteil: $\sum_{i=0}^{n-1}|z_i|\cdot b^i$
\item Nachkommaanteil: $\sum_{i=1}^{m}|z_i|\cdot b^{-i}$
\item Zusammen: $\sum_{i=-m}^{n-1}|z_i|\cdot b^{i}$
\item auch wieder mit beliebigen Basen $b, b\in \mathbb{N}, b>1$ möglich, \zB
\begin{align*}
&1101,11001101_2 \\
&1_31_20_11_0,1_{-1}1_{-2}0_{-3}0_{-4}1_{-5}1_{-6}0_{-7}1_{-8} \\
&2^3+2^2+2^0+2^{-1}+2^{-2}+2^{-5}+2^{-6}+2^{-8} \\
=&8+4+1+\frac{1}{2}+\frac{1}{4}+\frac{1}{32}+\frac{1}{64}+\frac{1}{256} \\
=&13+\underbrace{0,80078125}_{\text{kann nie Übertrag geben}}\\
=&13,80078125
\end{align*}
\end{itemize}
\subsubsection*{Wertbestimmung in andere Richtung: $13,80078125_{10} = ?,?_2$}
Vor- und Nachkommaanteil können getrennt behandelt werden.
Im nächsten Beispiel wird die Zahl $13,80078125$ (siehe oben) verwendet.
\bigskip
\columnratio{0.65}
\begin{paracol}{2}
\textbf{Vorkommaanteil}: Ganzzahldivision und Restebildung durch die Zahlbasis.
Somit ist $13_{10} = 1101_2$. \textcolor{green}{\cmark}
\switchcolumn
\vspace*{-10mm}
\begin{align*}
13:2=6 & R1 \\
6:2=3 & R0 \\
3:2=1 & R1 \\
1:2=\textcolor{red}{0} & R1 \\
\end{align*}
\end{paracol}
\textbf{Nachkommaanteil}:
\begin{itemize}[noitemsep]
\item Multiplikation mit Zielbasis und Aufteilung in
Vor- und Nachkommaanteil
\item Vorkommaanteil ist nächste Nachkommastelle
\item Nachkommaanteil wird weiter bearbeitet
\end{itemize}
\begin{align*}
0,80078125\cdot 2 &= \underbrace{1}_{\text{1.~NKS}},\underbrace{6015625 }_{\text{fortfahren}} \\
0,6015625\cdot 2 &= \underbrace{1}_{\text{2.~NKS}},203125 \\
0,203125\cdot 2 &= 0,40625 \\
0,40625\cdot 2 &= 0,8125 \\
0,8125\cdot 2 &= 1,625 \\
0,625\cdot 2 &= 1,25 \\
0,25\cdot 2 &= 0,5 \\
0,5\cdot 2 &= 1,\textcolor{red}{0} \Rightarrow \textit{Abbruchbedingung} \\
0,0\cdot 2 &= \textcolor{blue}{0},0 \Rightarrow \textit{kann weggelassen werden} \\
& \Rightarrow 11001101
\end{align*}
Die Abbruchbedingung ist, dass der Nachkommaanteil gleich null ist!
\begin{Achtung}
Falls vorher festgelegt, so müssen alle Nachkommastellen aufgefüllt werden, auch wenn alle folgenden Stellen null sind! Ist dies nicht der Fall, so können weitere nullen weggelassen werden, da sie nichts am Wert ändern.
\end{Achtung}
\textbf{Ein anderes Beispiel:}
\begin{align}
& \hspace*{4mm} 0,1_{10} = \textbf{?}_{2} = 0,\textcolor{red}{000110}
\label{eq:01inBinaer} \\
& \hspace*{3mm} 0,1\cdot 2 = 0,2 \nonumber \\
\text{wiederholt sich} & \left\{
\begin{aligned}
0,\textcolor{blue}{2}\cdot 2 &= 0,4 \\
0,4\cdot 2 &= 0,8 \\
0,8\cdot 2 &= 1,6 \\
0,6\cdot 2 &= 1,\textcolor{blue}{2}
\end{aligned}\nonumber
\right. \\
& \hspace*{4mm} 0,2\cdot 2 = 0,4 \nonumber
\end{align}
Wie \autoref{eq:01inBinaer} zeigt, ist $0,1_{10}$ im Binärsystem als Kommazahl nicht exakt darstellbar, denn die Abbruchbedingung wird nie erreicht!
Bei der Wandlung von Dezimalbrüchen in Binärbrüche treten bei sehr vielen Zahlen Rundungsfehler auf!
\section{Gleit-/Fließkommazahlen}\label{sec:gleitkommazahlen}\index{Kommazahlen}
\begin{description}
\item[Gleit-/Fließkommazahl] Zahl in Darstellung mit Mantisse und Exponent (auch \textit{Exponentialdarstellung genannt}). \newline
$\text{Zahl} = \text{Mantisse} \cdot b^{\text{Exponent}}$
\item[Mantisse] Festkommazahl mit potentiell sowohl Vor- als auch Nachkommastellen.
\item[Exponent] Ganze Zahl, welche die Anzahl der Stellen angibt, um welche das Komma bei der Mantisse verschoben werden muss, um den Zahlenwert zu erhalten.
\end{description}
\begin{tabular}{ll}
$103,578\cdot 10^{2} = 10357,8$ & $\Rightarrow$ Komma wird um zwei Stellen nach rechts verschoben. \\
$103,578\cdot 10^{-2} = 1,03578$ & $\Rightarrow$ Komma wird um zwei Stellen nach links verschoben.
\end{tabular}
\begin{Tipp}
Eine Kommaverschiebung gibt es, wenn mit einer Potenz der Basis multipliziert wird. Ansonsten muss gerechnet werden.
\end{Tipp}
\begin{Hinweis}
Im Computer ist $b=2$. Die Darstellung von Mantisse und Exponent findet als Gleitkommazahl bzw. als ganze Zahl zur Basis $2$ statt.
\end{Hinweis}
\vspace{-8mm}
\begin{align*}
1_{10} & = 1,0 = 1,0 \cdot 10^0 = 0,1\cdot 10^1 = 0,01\cdot 10^2 \\
& = 10,0\cdot 10^{-1} = 100,0\cdot 10^{-2}
\end{align*}
$\Rightarrow$ jede Zahl kennt unendliche viele Darstellungen als Fließkommazahl, \dash es gibt keine eindeutige Darstellung!
Gegenmaßnahme: \textbf{Normierung}!\index{Normierung}
Achtung: Es gibt verschiedene Normierungsbedingungen. Jede Normierungsbedingung sorgt für eine eindeutige Darstellung jeder Zahl, aber die gleiche Zahl hat unterschiedliche Darstellungen bei verschiedenen Normierungsbedingungen.
Zwei gängige Normierungsbedingungen:
\qquad Mantisse: $m_{n-1}m_{n-2}\ldots m_{1}m_{0} , m_{-1}m_{-2}\ldots m_{-k}$
\begin{enumerate}[noitemsep]
\item $n=1$, \dash eine Vorkommastelle, $m_0 \neq 0$
\item alle Vorkommastellen $m_i=0$ mit $i\geq 0$, \dash de facto keine Vorkommastelle (und nur Nachkommastellen) und $m_{-1} \neq 0$, \dash die erste Nachkommastelle ist ungleich 0.
\end{enumerate}
\textbf{Problem} (bei allen Normierungsbedingungen): Es gibt keine normierte Darstellung der $0$!
\textbf{Abhilfe}: Neben der Mantisse, welche (natürlich) nur aus \enquote{0} bestehen, darf, wird für \enquote{0} auch der Wert des Exponenten festgelegt (\zB auf den kleinsten mit dem Exponenten darstellbaren Wert).
\subsection{Normierung}
$\text{mantisse} \cdot b^{\text{exponent}}$ \newline
mantisse: Festkommazahl \newline
exponent: Ganzzahl
Eine bestimmte \enquote{erste Stelle} muss ungleich 0 sein. Es sind zwei Varianten gebräuchlich $\Rightarrow$ entweder ist die erste Stelle vor dem Komma oder die erste Stelle nach dem Komma ungleich null, um der Mehrfachdarstellung von Zahlen zu entgehen ($1,5\cdot 10^1$ ist das gleiche wie $0,15\cdot 10^{2}$).
\textit{Wichtig}: Die Basis ist immer gleich! Im Computer ist die Basis $b=2$, so gilt diese Basis auch für die Mantissendarstellung!
\subsection{Normierung zur Basis $b=2$}
Ist die erste Ziffer $\neq 0$, ist muss die Ziffer $= 1$ sein.
\begin{itemize}[noitemsep]
\item[$\Rightarrow$] diese Ziffer muss nicht explizit gespeichert werden.
\item[$\Rightarrow$] diese bei der Speicherung weggelassene Ziffer ist das sogenannte \enquote{\href{https://de.wikipedia.org/wiki/Gleitkommazahl\#Hidden_bit}{\textbf{Hidden Bit}}}\index{Hidden Bit}. Dadurch kann eine weitere Nachkommastelle gespeichert werden (das \enquote{Hidden Bit} ist nur bei der Basis 2 möglich, da bei dieser Basis darauf geschlossen werden kann, um welche Ziffern es sich handelt)
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textbf{Problem}: Darstellung der \enquote{0}!
\textbf{Lösung}: Ein spezielles Bitmuster stellt die \enquote{0} dar (alle Mantissen- und Exponentenbits sind \enquote{0}). In diesem Fall muss auch das \enquote{Hidden Bit} $=0$ gesetzt werden.
In allen anderen Fällen ist das \enquote{Hidden Bit} $=1$!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textbf{Beispiel} (mit 8~Bit):\newline
$1,011000_{2}$ für Zweierkomplement: $01,011000_2 \xrightarrow{\text{1er-Komplement}}$ 10,100111 $\xrightarrow{\text{+1}}$ 10,101000
\textbf{Aufgabe}: Komma um \zB vier Stellen nach vorne verschieben: $\Rightarrow 0,0001011000_2$
\textbf{Problem}:
\begin{itemize}[noitemsep]
\item Kommaverschiebung bei negativen Zahlen bedeutet anfügen von \enquote{1} anstatt \enquote{0}
\item Normierung bedeutet: Bestimmte Stelle $=0$ statt $=1$ bei negativen Zahlen.
\item[$\Rightarrow$] 2er-Komplement wird für Mantisse (meist) nicht verwendet.
\end{itemize}
\textit{Stattdessen: Vorzeichen und Betrag als übliche Darstellung der Mantisse bei Gleitkommazahl.}
\subsection{Negative Zahlen beim Exponenten?}
Herangehensweise beim Größenvergleich zweier Gleitkommazahlen:
\begin{enumerate}[noitemsep]
\item Vergleich der Mantissenvorzeichen
\item Vergleich der Exponenten. Beispiel: \newline
$1,111\cdot b^{-5} = 0,00001111$ ist kleiner als \newline
$1,000\cdot b^{+3} = 1010,0$
\item stellenweiser Vergleich\newline
Problem: positives Vorzeichen: (\enquote{0}) ist größer als negatives Vorzeichen (\enquote{1})
\item Mantissenvergleich
\end{enumerate}
Für Exponent: Aus potentiell negativem Exponenten wird immer ein nicht negativer Zahlenwert:\newline
\hspace*{6mm} $exp_{reell} + Bias = exp_{gespeichert}$
\subsubsection*{Bias}\index{Bias}
Der Bias ist eine festgelegte Konstante für die jeweilige Zahlendarstellung, welche den Betrag der kleinsten negativen Zahl angibt.
Typischer Bias: bei 8 Bit Exponenten: 127 (\dash $-127\leq exp_{reell}\leq +128$). \newline
Achtung: Dieser Wertebereich ist gegenüber dem mit 2er-Komplement erzielbaren Wertebereich um \enquote{1} verschoben (beim 2er-Komplement reicht der Wertebereich von $-128$ bis $+127$)!
\textbf{Beispiele}
\begin{table}[h]
\centering
\begin{tabular}{c|cc}
Bias & gespeichert & reell \\
\midrule
127 & $2^{0}$ & $2^{-127}$ \\
127 & $2^{127}$ & $2^{0}$ \\
127 & $2^{50}$ & $2^{-77}$ \\
127 & $2^{255}$ & $2^{128}$ \\
\end{tabular}
\caption{Gleitkommazahlen - Beispiele für Bias}
\end{table}
\subsection{Speicherung von Gleitkommazahlen gemäß IEEE 754}\index{IEEE 754}
\begin{table}[h]
\begin{tabular}{l|cccc|r}
& Anzahl Bit & Vorzeichen & Mantisse & Exponent & Bias \\
\midrule
\code{float} (bzw. Single) & 32 & 1 & 23 & 8 & 127\\
\code{double} & 64 & 1 & 52 & 11 & 1023 \\
\code{short/half} (Nachtrag 200x) & 16 & 1 & 10 & 5 & 15
\end{tabular}
\caption{IEEE 754 -- Anzahl Bits -- \acs{GKZ}}
\end{table}
\subsection{Wertebereich mit 32~Bit (\code{single/float} vs. Festkommazahl)}
\subsubsection{Festkommazahl}
32~Bit mit 16~Bit Vor- und 16~Bit Nachkommastellen und keine negativen Zahlen.
\begin{description}
\item[größte Zahl] $\Rightarrow$ alles \enquote{1}:
\begin{align*}
\underbrace{1111111111111111}_{\text{16mal}},\underbrace{1111111111111111}_{\text{16mal}} \\
=(2^{16}-1) + (1-2^{-16}) = 2^{16} -2^{-16} = 65536 - \frac{1}{65536} = 65535,9999847412
\end{align*}
\item[kleinste Zahl] 0
\item[kleinste Zahl >0] $2^{-16} = \frac{1}{65536} \approx 0,00001$ $\Rightarrow$ gleichzeitig der kleinste unterscheidbare Abstand zweier (benachbarter) Zahlen.
\end{description}
%%%%%%%%%%%%%%%
\subsubsection{bei Gleitkommazahlen/Single Precision IEEE 754}
Reihenfolge: \quad Vorzeichen \quad |\quad Exponent \quad |\quad Mantisse\newline
\enquote{Hidden Bit} = \enquote{1} als 1. Vorkommastelle
\begin{Hinweis}
Ich bin mir sicher, dass Herr Röthig gesagt hat, dass alle Exponentenbits für die größtmögliche Zahl auf 1 gesetzt werden. Laut IEEE 754 handelt es sich aber um \acs{NaN} bzw. Unendlich, wenn alle Exponentenbits gesetzt sind.
\textit{Siehe auch \url{https://de.wikipedia.org/wiki/IEEE_754}}.
\end{Hinweis}
\begin{description}
\item[größte \acs{GKZ}]
\begin{align*}
\underbrace{0}_{\text{VZ}}\underbrace{1~~1~~1~~1~~1~~1~~1~~1}_{\text{Exp.} = 255 - Bias = 128}\underbrace{11111111111\ldots 111111111}_{\text{23 mal -- Mantisse -- } 1 + (1 - 2^{-23})}
\end{align*}
Damit: $(2-2^{-23})\cdot 2^{128} = 2^{129} - 2^{105} \approx (10^3)^{13} \cdot \frac{1}{2}-(10^3)^{10}\cdot 2^5$ (die $\frac{1}{2}$, da es nicht 130 sind).
\item[kleinste \acs{GKZ}] wie die größte Zahl, aber mit negativem Vorzeichen.
\item[kleinste \acs{GKZ} $> 0$]
\begin{align*}
\underbrace{0}_{\text{Vz}}\underbrace{0~~0~~0~~0~~0~~0~~0~~0}_{\text{Exp.} = 0 - \text{Bias} = -127}\underbrace{0~0~0~0~0~0~\ldots 0~0~0~0~0~0~0~1}_{\text{22 mal die 0 -- Mantisse -- } 1 + 2^{-23}}
\end{align*}
$\Rightarrow$ $(1+2^{-23}) \cdot 2^{-127} = 2^{-127} + 2^{-150} \approx \frac{1}{\ldots}$
\item[nächstgrößere GKZ nach der kleinsten > 0]
\begin{align*}
\underbrace{0}_{\text{Vz}}\underbrace{0~0~0~0~0~0~0~0}_{\text{Exponent} = 0 - \text{Bias} = -127}\underbrace{000\ldots 00010}_{\text{Mantisse}}
\end{align*}
$\Rightarrow$ $(1+2^{-22}) \cdot 2^{-127}$, \dash Abstand ist $2^{-150}$
\dash der kleinste Abstand zwischen zwei (benachbarten) Zahlen ist bei Gleitkommazahlen nicht konstant, sondern hängt vom jeweiligen Exponenten der Zahl ab!
\end{description}
Bei Überläufen ergibt sich \enquote{\acf{NaN}}, welches durch ein spezielles Bitmuster dargestellt wird.
\begin{Achtung}
Der Vergleich von NaN mit NaN ergibt \textit{immer} \code{false}! Dies ist im Standard definiert.
\begin{center}
$NaN \neq NaN$
\end{center}
\end{Achtung}
\subsection[Umrechnung in GKZ zur Basis 2]{Umrechnung einer Zahl in die Darstellung als Gleitkommazahl zur Basis 2 im Computer}
$\Rightarrow 4,2\cdot 10^{-1}$
\begin{enumerate}[noitemsep]
\item Feststellung des Vorzeichens. Weitere Rechnung mit Betrag durchführen.
\item Schritt: Umrechnung in eine Festkommazahl
$4,2\cdot 10^{-1} = 0,42$
\item Umrechnung der Festkommazahl in die Zielbasis 2: $0,\textcolor{red}{0110101110000}$
\begin{table*}[h]
\centering
\begin{tabular}{l}
$0,42\cdot 2 = \textcolor{red}{0},84$ \\
$0,84\cdot 2 = 1,68$ \\
$0,68\cdot 2 = 1,56$ \\
$0,56\cdot 2 = 0,72$ \\
$0,72\cdot 2 = 1,44$ \\
$0,44\cdot 2 = 0,88$ \\
$0,88\cdot 2 = 1,76$ \\
\end{tabular}
\begin{tabular}{l}
$0,76\cdot 2 = 1,52$ \\
$0,52\cdot 2 = 1,04$ \\
$0,04\cdot 2 = 0,08$ \\
$0,08\cdot 2 = 0,16$ \\
$0,16\cdot 2 = 0,32$ \\
$0,32\cdot 2 = 0,64$ \\
\\
\end{tabular}
\end{table*}
Solange weiter rechnen, bis die relevante Anzahl signifikanter Mantissenbits erreicht ist (die ersten nullen sind \textit{nicht} signifikant! Erst die erste \enquote{1} ist signifikant. \textit{Achtung}: Bei \enquote{Hidden Bit} eine Stelle mehr).
\item Komma verschieben für Normierung, Exponent entsprechend setzen
$1,\underbrace{1010111000}_{\text{10 Stellen}}(0) \cdot 2^{-2}$
\item Exponent plus Bias: $-2 + 15 = 13$
\item Exponent ins Binärsystem umrechnen und mit führenden Nullen auffüllen
$13_{10} = 1101_2 (= 1+4+8) = 01101_2$
\item Fließkommazahl als Bitmuster
\begin{align*}
\underbrace{0}_{\text{Vz}}\underbrace{01101}_{\text{Exponent}}\underbrace{1010111000}_{\text{Mantisse}}
\end{align*}
\end{enumerate}
\begin{Hinweis}
Für die Klausur müssen nur die Gesamtanzahl der Bits auswendig gelernt werden (\texttt{float}, \texttt{double}, \texttt{half}). Der Rest (also Anzahl Bits der Mantisse,\ldots) muss \textit{nicht} auswendig gelernt werden!
\end{Hinweis}
\section{Weitere Zahlencodierungen}
Zahlencodierung wird unterschieden in:
\begin{description}
\item[Wertcodierung] Wert der Zahl als ganzes wird betrachtet und codiert.
\item[Zifferncodierung] Zahl wird Ziffernweise codiert \newline
Beispiel:
\begin{itemize}[noitemsep]
\item direkte Umrechnung von 2er ins 16er-System (oder ähnliches).
\item Zahlendarstellung im Text (als Ziffernfolge)
\item \acf{BCD} \newline
$\Rightarrow$ binär (mit 4 Bit) kodierte \enquote{Dezimalstellen}
\end{itemize}
\end{description}
\subsection{\acf{BCD}}\index{BCD}
\begin{table}[h]
\centering
\begin{tabular}{c|c}
4~Bit & Dezimalziffer \\
\midrule
0000 & 0 \\
0001 &1 \\
0010 &2 \\
0011 & 3\\
0100 & 4\\
0101 & 5\\
\end{tabular}
\begin{tabular}{c|c}
4~Bit & Dezimalziffer \\
\midrule
0110 & 6\\
0111 & 7\\
1000 & 8\\
1001 & 9\\
1010 & \\
& \\
\end{tabular}
\begin{tabular}{c|c}
4~Bit & Dezimalziffer \\
\midrule
1011 & \\
1100 & \\
1101 & \\
1110 & \\
1111 & \\
& \\
\end{tabular}
\caption{\acs{BCD} zu Dezimalziffer}
\end{table}
Die übrigen Bitmuster sind individuell zugeordnet (das Vorzeichen \enquote{+/-}, das Komma \enquote{~,~}, der Dezimalpunkt \enquote{~.~})!
$\Rightarrow$ Damit \textit{kann} mit einem Byte der Wertebereich von 0 bis 99 abgedeckt werden.
Zum Vergleich:
\begin{itemize}[noitemsep]
\item Textcodierung mit einem Byte:\qquad Wertebereich 0 bis 9
\item Binärcodierung mit einem Byte:\qquad 0 bis 255
\end{itemize}
\textbf{Reales Beispiel}: 6502-CPU (Apple \RNum{2}, Commodore C64) konnte in Maschinensprache mit BCD-Zahlen rechnen!

480
Kapitel/05_Signale.tex Normal file
View file

@ -0,0 +1,480 @@
\chapter{Einschrittiger Code}
\begin{description}
\item[Einschrittiger Code] Zahlencode, bei dem sich zwischen zwei jeweils aufeinander folgenden Werten nur genau eine Stelle ändert! Beispiel: Gray-Code\index{Einschrittiger Code}
\end{description}
\section{Gray-Code}\index{Gray-Code}
Der Gray-Code gehört weder zu den Stellenwertsystemen noch zu den Abzählsystemen!
\begin{table}[h]
\centering
\begin{tabular}{c|c}
Gray-Code & Dezimalsystem \\
\midrule
0\textcolor{blue}{000} & 0 \\
0001 & 1 \\
0011 & 2 \\
0010 & 3 \\
0\textcolor{green}{110} & 4 \\
0111 & 5 \\
0101 & 6 \\
0\textcolor{red}{100} & 7 \\
\end{tabular}
\begin{tabular}{c|c}
Gray-Code & Dezimalsystem \\
\midrule
1\textcolor{red}{100} & 8 \\
1101 & 9 \\
1111 & 10 \\
1\textcolor{green}{110} & 11 \\
1010 & 12 \\
1011 & 13 \\
1001 & 14 \\
1\textcolor{blue}{000} & 15 \\
\end{tabular}
\caption{4-stelliger Gray-Code}
\label{tbl:gray_code}
\end{table}
Es gibt zwei Varianten zur Bildung:
\begin{enumerate}[noitemsep]
\item Die Position \enquote{0} wird durch eine Folge von \enquote{0}-Symbolen repräsentiert und die jeweils nächste Position ergibt sich, indem wir die nächste (\enquote{rechteste}) Stelle ändern, bei welcher sich kein bislang verwendetes Bitmuster ergibt.
\item Erweiterung eines n-stelligen Gray-Code auf $n+1$ Stellen, indem bei den ersten $2^n$ Positionen eine \enquote{0} vorangestellt wird und bei den neuen $2^n$ Positionen die bisherigen Bitmuster in umgekehrter Reihenfolge mit vorangestellter \enquote{1} verwendet werden (siehe \autoref{tbl:gray_code}).
\end{enumerate}
\textbf{Anwendung einschrittiger Codes (Gray-Code):} \newline
Immer dann, wenn bei fortlaufenden Zahlenwerten (und deren paralleler Übertragung) falsche Zwischenwerte aufgrund unterschiedlicher Verzögerung der einzelnen Stellen verhindert werden soll, wird Gray-Code verwendet.
\textbf{Nachteil von Gray-Code}:\newline
Die Wertebestimmung ist kompliziert und es gibt keine praktisch sinnvoll anwendbare Rechenregeln.
\chapter{Signalcodierung}
Bei Signalcodierung geht es \textit{nicht} darum, \textit{was} codiert wird, sondern darum, \textit{wie} codiert wird! Und zwar als Signal, \dash als eine physisch messbare Größe.
Mögliche Signale:
\begin{itemize}[noitemsep]
\item Spannung ($V$)
\item Stromstärke ($A$)
\item Licht
\item Schall
\item elektromagnetische Wellen
\item Druck (Pneumatik, Hydraulik)
\item \ldots
\end{itemize}
Insbesondere elektrische Signale, also Spannung und Stromstärke sind für uns interessant.
\section{Elektrische Signale}
\subsection{Spannung}
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.9]
\draw[ultra thick]
(0,1.5) -- (0,2.5) -- (5,2.5) -- (5,1.5) node[below]{Empfänger};
\draw[ultra thick]
(0,1) -- (0,0) -- (5,0) -- (5,1);
\draw
(0,1.5) node[below]{Sender};
\path[thick, ->]
(1,0) edge (1,2.5);
\draw (1,1.25) node[right]{5V};
\end{tikzpicture}
\caption{Elektrische Signale zwischen Sender und Empfänger}
\label{fig:strom_spannung}
\end{figure}
\begin{figure}[h]
\begin{align}
U&=R\cdot I \\
\label{eq:URI}
P&=U\cdot I \\
Q&=C\cdot U
\end{align}\vspace{-7mm}
\caption{Wichtige Formeln für elektrische Signale}
\end{figure}
In \autoref{fig:strom_spannung} beträgt die Spannung zwischen Sender und Empfänger $5V$. Tatsächlich liegt sie aber unter $5V$, da die Leitung selbst ein Widerstand $R$ ist und aus \autoref{eq:URI} hervorgeht, dass diese für die Berechnung der Spannung ausschlaggebend ist, genauso wie der Strom $I$.
Außerdem kann es zu Spannungsänderungen durch elektromagnetische Störstrahlung kommen!
\textit{Doch welche Spannung wird genutzt und welche Werte bedeuten was?}\newline
Hierfür wird \zB der \acs{TTL} Pegel genutzt\footnote{siehe \url{https://de.wikipedia.org/wiki/Transistor-Transistor-Logik}} (eingeführt Anfang der 1960er Jahre von Texas Instruments, um standardisierte Pegelwerte und interoperable Bausteine zu ermöglichen).\newline
\hspace*{5mm}$0 \hat{=} 0V$ \quad und \quad $1 \hat{=} 5V$
Innerhalb des Rechners sind heute eher niedrigere Spannungshübe üblich (\zB $3,3V$, $1,6V$), jedoch sind diese störanfälliger gegen Störeinstrahlung! Der Vorteil ist ein schnelleres Erreichen einer Spannung nahe der Nennspannung (kapazitive Wirkung).\newline
Nachteil größerer Spannungen ist zudem ein höherer Energieverbrauch und damit auch eine höhere Wärmeentwicklung und eine niedrigere Lebenserwartung der Bauteile.
\subsection{Strom}
Dem gegenüber steht der Strom: Es gibt keine Anfälligkeit für Störungen oder Spannungsabfälle durch hohe Leitungswiderstände $\Rightarrow$ beim Empfänger fließt immer der gleiche Strom wie beim Sender (denn in einem geschlossenen Stromkreis ist der Strom $I$ immer gleich).
Nachteil: Es gibt einen viel höheren Energieverbrauch (um den Strom fließen lassen zu können, auch bei hohem Leitungswiderstand ist eine sehr hohe Spannung notwendig, \ldots).
$\Rightarrow$ In Rechnern sind deshalb Spannungen die üblichen Signale (heutzutage kleine Spannungen).
\section{Übertragung von mehr als 1~Bit}
\begin{itemize}[noitemsep]
\item gleichzeitig/parallel: \zB mehrere Leitungen (Raum-Multiplex)
\item sequenziell/nacheinander: \zB getaktete Übertragung. Es kann eine Taktleitung geben, die die Dauer/den Takt für die Übertragung vorgibt (siehe \autoref{fig:takt})
\end{itemize}
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.9]
\draw[ultra thick]
node[left]{Takt} (0,0)--(1,0)--(1,1)--(2,1)--(2,0)--(3,0)
--(3,1)--(4,1)--(4,0)--(5,0)--(5,1)--(6,1)
--(6,0)--(7,0)--(7,1)--(8,1)--(8,0)--(9,0);
\end{tikzpicture}
\begin{tikzpicture}[scale=0.9]
\draw[ultra thick]
node[left]{Daten} (0,0)--(1,0)--(1,1)--(2,1)
--(3,1)--(4,1)--(4,0)--(5,0)--(5,1)--(6,1)
--(6,0)--(7,0)--(8,0)--(9,0);
\draw
(1.25,0.5) node[right]{1}
(2.25,0.5) node[right]{1}
(3.25,0.5) node[right]{1}
(4.25,0.5) node[right]{0}
(5.25,0.5) node[right]{1}
(6.25,0.5) node[right]{0}
(7.25,0.5) node[right]{0}
(8.25,0.5) node[right]{0};
\end{tikzpicture}
\caption{Getaktete Signale}
\label{fig:takt}
\end{figure}
\section{Getaktete Übertragung}
Es werden vier Verfahren zur getakteten Übertragung aufgezeigt. Für jedes Verfahren werden folgende vier Eigenschaften beschrieben:
\begin{description}
\item[a) \acf{TRG}]\footnote{siehe auch \url{https://de.wikipedia.org/wiki/Taktr\%C3\%BCckgewinnung}}\index{Taktrückgewinnung}\hfill\newline
Möglichkeit, beim Empfänger den Takt des Senders nur aus den empfangenen Daten zu resynchronisieren. Grundsätzlich ist dies immer dann möglich, wenn ein Pegelwechsel zu einem vorgegebenen Zeitpunkt stattfindet.
\item[b) \acf{BBB}]\index{Bandbreitenbedarf} \hfill\newline
\textit{Aussage: Jeder Übertragungskanal ist bandbreitenbeschränkt.}
\textbf{Shannon/Nyquist-Theorem}\index{Shannon-Theorem}\newline
Schrittrate $=$ doppelte Bandbreite (bei Datenübertragung/bei Frequenzabtastung).
Der \acf{BBB} gibt an, welche Bandbreite\footnote{siehe auch \url{https://de.wikipedia.org/wiki/Bandbreite}} bei einer bestimmten Schrittrate und Signalcodierungsverfahren auf dem Übertragungskanal benötigt wird (zu ersehen aus der höchsten Frequenz auf der Leitung bei einem beliebigen Bitmuster).
\item[c) \acf{GSF}]\index{Gleichstromfreiheit} \hfill\newline
Im Mittel sollen \enquote{0V} auf der Leitung liegen, um eine Potentialverschiebung beim Empfänger zu verhindern (Pseudoargument für \acs{GSF}: keine Energieübertragung vom Sender zum Empfänger).
Grundvoraussetzung für \acs{GSF} sind (bei fast jedem Verfahren) symmetrische Pegel, \zB $5V\hat{=}1$ und $-5V\hat{=}0$.
\item[d) \acf{SSH}]\index{Störsicherheit} \hfill\newline
Unanfälligkeit des Verfahrens gegenüber Spannungsänderungen auf der Leitung, welche von außen induziert werden $\Rightarrow$ direkt abhängig von der Anzahl zu unterscheidender Spannungspegel.
\end{description}
\subsection{1. \acf{NRZ}}\index{NRZ}
Während der gesamten Takt-/Schritt-/Bitzeit wird der Pegel angelegt, welcher dem zu übertragenden Bit (\enquote{0} oder \enquote{1}) entspricht.
\subsubsection{a) \acl{TRG} bei \acs{NRZ}}
Immer bei \enquote{10}- oder \enquote{01}-Folgen im Datenstrom \newline
Keine \acs{TRG} bei \acs{NRZ}, falls über längere Zeit nur \enquote{0} oder nur \enquote{1} übertragen werden.
Abhilfe, um TRG bei NRZ immer vor einer gewissen Anzahl von Bits zu ermöglichen:
\textit{\uline{1. Startbitsequenz}} \zB \enquote{01} vor jedem Byte/ jeder 8-Bit-Folge
Frage: \textit{Wie genau müssen dann die Uhren laufen?}\newline
Die Uhren dürfen während der gesamten Sequenz (Startbitsequenz + Daten) um maximal $\frac{1}{2}$ Schrittzeit voneinander abweichen.
Jeder der beiden (Sender \& Empfänger) darf jeweils nur um $\frac{1}{4}$ Schrittzeit vom Normaltakt abweichen!
$Abweichung_{erlaubt_{max}} = \frac{\frac{1}{4} Schrittzeit}{(2+8) Schrittzeit} = \frac{\frac{1}{4}}{10} = 2,5\%$
Falls die Uhren ungenauer sind $\Rightarrow$ häufigeres Senden der Startbitsequenz.
Nachteil: kleinere Nettodatenrate (= Verhältnis Nutzdaten zu Schritten).
Schrittrate = Baudrate\footnote{siehe \url{https://de.wikipedia.org/wiki/Baud}} \index{Baudrate} \newline
Nutzrate = Bitrate\index{Nutzrate}
$\text{Bitrate} = \frac{\text{Anzahl Nutzdatenbit}}{\text{Anzahl Schritte}} \cdot \text{Baudrate} = \frac{8}{2+8} = 80\% \cdot \text{Baudrate}$\index{Bitrate}
\textit{\uline{2. Bitstuffing}} (\enquote{Bitstopfen})\footnote{siehe \url{https://de.wikipedia.org/wiki/Bitstopfen}}]\index{Bitstuffing}\hfill\newline
Nach jeweils $n$ ($n$ ist eine feste, vorgegebene Zahl, \zB $n=4$) gleichen Nutzdatenbits wird ein Bit mit dem entgegengesetzten Wert eingefügt (\enquote{eingestopft}).
0010000\uline{1}0011101111\uline{0}1111\uline{0}0000\uline{1}11 \quad $\Rightarrow$ \quad Die unterstrichenen Zahlen werden \enquote{eingestopft}.
Beim Empfänger wird nach $n$ gleichen Bits das nächste empfangene Bit als Stopfbit aus dem Nutzdatenstrom entfernt, sofern es den entgegengesetzten Wert hat.\newline
Bei gleichem Wert $\Rightarrow$ Fehlermeldung!
Vorteil: In jedem Fall bessere Nettodatenrate als bei Startbitsequenz: Im Besten Fall Nettodatenrate = Schrittrate. Im schlechtesten Fall Nettodatenrate = $\frac{n}{n+1}\cdot Schrittrate$
Nachteile:
\begin{itemize}[noitemsep]
\item komplexes Verfahren und damit fehleranfällig
\item keine konstante Nutzdatenrate
\end{itemize}
Bitstuffing wird nicht nur verwendet, um TRG zu ermöglichen, sondern auch, um bestimmte Bitmuster in den Nutzdaten auszuschließen $\Rightarrow$ \enquote{Frame Delimiter} bei Ethernet.
\subsubsection{b) \acl{BBB} bei \acs{NRZ}}
Halbe Schrittrate, also minimal (H. Shannan/Nyquist) -- entspricht der Frequenz beim Bitmuster \enquote{1010101010\ldots}.
\subsubsection{c) \acl{GSF} bei \acs{NRZ}}
Die \acl{GSF} ist bei \acs{NRZ} erfüllt, falls \#\enquote{1} $=$ \#\enquote{0} ist, bzw. falls \enquote{1} und \enquote{0} im Datenstrom gleichverteilt sind und es symmetrische Pegel sind! $\Rightarrow$ Davon können wir oft nicht ausgehen!
\begin{Hinweis}
Bei Verschlüsselung kann davon ausgegangen werden, dass Nullen und Einsen gleich verteilt sind, da dadurch keine Häufigkeitsanalyse möglich ist! Hier wäre eine \acl{GSF} möglich.
\end{Hinweis}
\subsubsection{d) \acl{SSH} bei \acs{NRZ}}
Die \acl{SSH} ist bei \acs{NRZ} optimal, da nur zwei Spannungen unterschieden können werden müssen.
\subsection{2. \acf{RZ}}
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.9]
\draw
(0.25,2) node[right]{1}
(1.25,2) node[right]{0}
(2.25,2) node[right]{1}
(3.25,2) node[right]{0}
(4.25,2) node[right]{1}
(5.25,2) node[right]{1}
(6.25,2) node[right]{1}
(7.25,2) node[right]{0}
(8.25,2) node[right]{0}
(9.25,2) node[right]{0}
(10.25,2) node[right]{0}
(11.25,2) node[right]{1}
(12.25,2) node[right]{1};
\draw[ultra thick]
(0,0.5) node[left]{NRZ} (0,1)--(1,1)--(1,0)--(2,0)--(2,1)--(3,1)--(3,0)--
(4,0)--(4,1)--(5,1)--(7,1)--(7,0)--(11,0)--(11,1)--(13,1)--(13,0);
\draw[ultra thick]
(0,-1.5) node[left]{RZ} (0,-1)--(0.5,-1)--(0.5,-2)--(2,-2)--(2,-1)--
(2.5,-1)--(2.5,-2)--(4,-2)--(4,-1)--(4.5,-1)--(4.5,-2)--(5,-2)--(5,-1)--
(5.5,-1)--(5.5,-2)--(6,-2)--(6,-1)--(6.5,-1)--(6.5,-2)--(11,-2)--(11,-1)--
(11.5,-1)--(11.5,-2)--(12,-2)--(12,-1)--(12.5,-1)--(12.5,-2)--(13,-2);
\path[thick,red!80!black,<->]
(2,0.7) edge (3,0.7)
(1,0.3) edge (3,0.3);
\draw[red!80!black] (2.5,1.1) node[above] {Schrittzeit}
(2,-0.6) node[above] {Periodendauer};
\path[thick,red!80!black,<->]
(4,-1.3) edge (5,-1.3)
(4,-1.7) edge (5,-1.7);
\draw[red!80!black] (4.5,-1) node[above] {Schrittzeit}
(4.5,-2.6) node[above] {Periodendauer};
\end{tikzpicture}
\caption{NRZ und RZ im Vergleich}
\label{fig:nrz_rz_vergleich}
\end{figure}
Im Unterschied zu \acs{NRZ} wird bei \acs{RZ} jede Schrittzeit in zwei Hälften eingeteilt. Während der ersten Hälfte wird derselbe Pegel wie bei \acs{NRZ} übertragen, während der zweiten Hälfte wird jedoch immer der \enquote{0}-Pegel übertragen! Dies wird in \autoref{fig:nrz_rz_vergleich} dargestellt.
\subsubsection{a) \acl{TRG} bei \acs{RZ}}
\acl{TRG} gibt es bei jeder \enquote{1}. Nur bei nur \enquote{0} gibt es keine \acs{TRG}.
\textit{\uline{1. Startbitsequenz}}\newline
Ein einfaches Startbit \enquote{1} reicht aus!
\textit{\uline{2. Bitstuffing}} \newline
Stopfbit nur nach $n$ \enquote{0}-Bit notwendig!
$\Rightarrow$ Jeweils nur noch ungefähr halber Overhead gegenüber Einsatz bei \acs{NRZ}!
\subsubsection{b) \acl{BBB} bei \acs{RZ}}
Ganze Schrittrate, also doppelt so viel wie nötig (entspricht der Frequenz beim Bitmuster \enquote{1111111\ldots}). \newline
\autoref{fig:nrz_rz_vergleich} zeigt beispielhaft die unterschiedliche Schrittzeit und Periodendauer zwischen \acs{NRZ} und \acs{RZ}.
\subsubsection{c) \acl{GSF} bei \acs{RZ}}
\acl{GSF} bei \acs{RZ}:
\begin{itemize}[noitemsep]
\item bei symmetrischem Pegel: nur \enquote{1}
\item bei \enquote{single-ended}-Pegeln: nur \enquote{0}
\item bei \#\enquote{1} $=$ \#\enquote{0}: andere Pegel notwenig, \zB $1\hat{=}7,5V$, $0\hat{=}-2,5V$
\end{itemize}
De facto nie \acs{GSF} bei \acs{RZ}.
\subsubsection{d) \acl{SSH} bei \acs{RZ}}
Die \acl{SSH} ist bei \acs{RZ} optimal, da nur zwei Spannungen unterschieden können werden müssen.
\subsection{3. \acf{AMI}}\index{Alternate Mark Inversion}
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.9]
\draw
(0.25,0.5) node[right]{0}
(1.25,0.5) node[right]{1}
(2.25,0.5) node[right]{0}
(3.25,-0.5) node[right]{1}
(4.25,0.5) node[right]{0}
(5.25,0.5) node[right]{1}
(6.25,-0.5) node[right]{1}
(7.25,0.5) node[right]{1}
(8.25,0.5) node[right]{0}
(9.25,0.5) node[right]{0}
(10.25,0.5) node[right]{0};
\draw[ultra thick]
(0,0) node[left]{AMI} (0,0)--(1,0)--(1,1)--(2,1)--(2,0)--(3,0)--(3,-1)--
(4,-1)--(4,0)--(5,0)--(5,1)--(6,1)--(6,-1)--(7,-1)--(7,1)--(8,1)--(8,0)--
(11,0);
\end{tikzpicture}
\caption{\acl{AMI}}
\label{fig:ami}
\end{figure}
Ähnlich wie \acs{NRZ} mit \enquote{single-ended} Pegeln, aber Einsen (\enquote{1}) werden abwechselnd mit jeweils entgegengesetzten symmetrischen Regeln (\zB $+5V$ und $-5V$) übertragen. \autoref{fig:ami} zeigt dies.
\subsubsection{a) \acl{TRG} bei \acs{AMI}}
Bei jeder \enquote{1} (wie bei \acs{RZ}, entsprechend Startbit bzw. Bitstuffing).
\subsubsection{b) \acl{BBB} bei \acs{AMI}}
Halbe Schrittrate, also minimal (laut H. Shannan/Nyquist).
\subsubsection{c) \acl{GSF} bei \acs{AMI}}
Nach jeder zweiten \enquote{1} (also bei einer geraden Anzahl an Einsen). $\Rightarrow$ Der Gleichstrom-Anteil ist bei entsprechend großer Anzahl Bit vernachlässigbar).
\subsubsection{d) \acl{SSH} bei \acs{AMI}}
Die \acl{SSH} ist bei \acs{AMI} schlecht, da für ein Bit drei Spannungen notwendig sind.
\subsection{4. Manchester-Codierung}
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.9]
\path[black,ultra thick,->]
(0,0) node[left]{Manchester}
(0,0) edge (0.5,1)
(1,1) edge (1.5,0)
(2,0) edge (2.5,1)
(3,1) edge (3.5,0)
(4,0) edge (4.5,1)
(5,0) edge (5.5,1)
(6,1) edge (6.5,0)
(7,1) edge (7.5,0);
\path[blue!50!black,thick,->]
(4.75,1) edge (4.75,0)
(6.75,0) edge (6.75,1);
\end{tikzpicture}
\caption{Manchester-Codierung}
\label{fig:manchester}
\end{figure}
Datenbit wird über einen Pegelwechsel zur Mitte der Schrittzeit definiert.
Steigende Flanke $\hat{=}$ \enquote{1}, Fallende Flanke $\hat{=}$ \enquote{0} (kann auch umgekehrt definiert sein. \textit{Hinweis:} Flanke $=$ Pegelwechsel)
Gegebenenfalls muss ein weiterer Pegelwechsel zu Beginn der Schrittzeit eingefügt werden (siehe blaue Pfeile in \autoref{fig:manchester}).
\subsubsection{a) \acl{TRG} bei Manchester}
Immer (bei allen übertragenen Daten) in jeder Schrittzeit möglich (aber: Abweichung darf insgesamt nur $\frac{1}{4}$~Schrittzeit betragen).
\subsubsection{b) \acl{BBB} bei Manchester}
Entspricht der Schrittrate und damit doppelt so viel wie nötig (Frequenz tritt bei \enquote{111111\ldots} und \enquote{00000\ldots} auf).
\subsubsection{c) \acl{GSF} bei Manchester}
Immer (bei symmetrischen Pegeln), da sich die Pegel in der ersten und zweiten Hälfte jeder Schrittzeit ausgleichen.
\subsubsection{d) \acl{SSH} bei Manchester}
Optimal, da nur zwei Pegel verwendet werden.
\bigskip
\begin{table}[ht]
\subsection{Vergleich der Signalcodierungsverfahren}
\centering
\begin{tabular}{p{20mm}|p{30mm}|p{49mm}|p{19mm}|p{22mm}}
& \acs{TRG}
& \acs{GSF} (Grundvoraussetzung: symmetrische Pegel)
& \acs{BBB}
& \acs{SSH}
\\ \midrule
\acs{NRZ}
& \textcircled{--} \textcircled{--} bei jeder \enquote{01}- oder \enquote{10}-Folge
& \textcircled{--} bei $\#1=\#0$ ($1$ und $0$ gleichverteilt)
& \textcircled{+} halbe Schrittrate
& \textcircled{+} optimal (2 Pegel)
\\ \midrule
\acs{RZ}
& \textcircled{--} bei jeder \enquote{1}
& \textcircled{--}\textcircled{--} nur 1 (bei symmetrischen Pegeln) bzw. nur 0 (bei single-ended Pegel) bzw. komischen Pegelverhältnis (bei $\#1=\#0$)
& \textcircled{--} ganze Schrittrate
& \textcircled{+} optimal (2 Pegel)
\\ \midrule
\acs{AMI}
& \textcircled{--} bei jeder \enquote{1}
& \textcircled{+} bei jeder zweiten $1$, also praktisch immer
& \textcircled{+} halbe Schrittrate
& \textcircled{--} schlechter (3 Pegel)
\\ \midrule
Manchester
& \textcircled{+} immer
& \textcircled{+} \textcircled{+} wirklich immer
& \textcircled{--} ganze Schrittrate
& \textcircled{+} optimal (2 Pegel)
\\
\end{tabular}
\caption{Vergleich der Signalcodierungsverfahren}
\end{table}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,451 @@
\chapter{Übungsklausur}
\begin{tabular}{ll}
Zeit: & 120min \\
Punkte: & 100 (gesamt; eine eins ab \circa{92} Punkte; ab 46 Punkte eine 4) \\
\multicolumn{2}{l}{Keine Hilfsmittel!}
\end{tabular}
\begin{Tipp}
\begin{itemize}[noitemsep]
\item Vor Beginn der Klausur diese zuerst komplett durchgelesen. Dadurch kann doppelter Text vermieden werden.
\item Stichpunkte sind \textit{immer} erlaubt!
\end{itemize}
\end{Tipp}
\section{Aufgabe 1 (34~P.)}
\begin{enumerate}[label=\textsf{\textbf{\alph*)}},leftmargin=*]
\item Was ist Codierung? Erläutern Sie den Begriff allgemein und gehen Sie insbesondere auf die spezielle Form Zeichencodierung, Signalcodierung und Zahlencodierung ein! (\textsf{\textbf{4~P.}})
\begin{description}
\item[Codierung] Codierung ist die Darstellung von Informationen (analoge oder digitale Infos möglich) mit einem Alphabet (codierte Informationen sind bei uns also immer digital!).
\item[Alphabet] endliche Menge von Symbolen.
\item[Zeichencodierung] Es werden Zeichen der Schriftsprache dargestellt. Es geht nicht um das \textit{wie}, sondern um das \textit{was} dargestellt wird.
\item[Signalcodierung] Zuordnung von (abstrakter) Info zu einem Signal. Es geht darum \textit{wie} etwas codiert wird, aber nicht darum \textit{was} (\zB JPEGs, Videos, Text,\ldots) codiert wird.
\item[Zahlencodierung] Es werden Zahlenwerte dargestellt
\end{description}
\item \acl{SSH} und \acl{GSF} sind Begriffe, welche im Zusammenhang mit einer der in Teilaufgabe a) genannten Codierungsformen stehen. Für welche? \newline
Erläutern Sie die beiden Begriffe \acl{SSH} und \acl{GSF} und warum diese eine Rolle bei diesen Codierungsformen spielen. Erläutern Sie für die Codierungen \acs{NRZ}, \acs{RZ}, Manchester und \acs{AMI} über welche Bedingungen diese jeweils Gleichstromfreiheit ermöglichen.
$\Rightarrow$ \acs{SSH} und \acs{GSF} bei Signalcodierung.
\begin{description}
\item[\acl{SSH}] Unanfälligkeit des Verfahrens gegenüber Spannungsänderungen auf der Leitung, welche von außen induziert werden $\Rightarrow$ durch Vermeidung von Störungen können Signale (besser) übertragen werden.
\item[\acl{GSF}] Im Mittel sollen \enquote{0V} auf der Leitung liegen, um eine Potentialverschiebung beim Empfänger zu verhindern (Pseudoargument für \acs{GSF}: keine Energieübertragung vom Sender zum Empfänger). $\Rightarrow$ dadurch kann auf eine \enquote{Masse}-Leitung verzichtet werden.
\begin{description}
\item[\acs{NRZ}] Wenn es symmetrische Pegel (\zB $5V$ und $-5V$) gibt und Einsen und Nullen gleichverteilt sind.
\item[\acs{RZ}] symmetrischen Pegeln: nur bei Einsern\newline
keine symmetrischen Pegel (also $0\hat{=}0V$ und ein höherer Pegel $\hat{=}1$): nur bei Null\newline
Wenn Gleichverteilung von \enquote{0} und \enquote{1} gewünscht ist, ergibt sich eine \enquote{seltsame} Verteilung der Spannungspegel.
\item[\acs{AMI}] Nach jeder zweiten \enquote{1}.
\item[Manchester] Bei symmetrischen Pegeln: Immer, denn die erste Hälfte der Schrittzeit und die zweite Hälfte gleichen sich genau aus.
\end{description}
\end{description}
\begin{Achtung}
Es ist nur nach \acs{GSF} gefragt! Lese die Aufgabe gut durch. Laut Herrn Röthig erläutern auch viele die \acs{SSH}, was aber nicht gefragt ist.
Wenn jedoch etwas falsches geschrieben wird, gibt es Punktabzüge, auch wenn das Geschriebene gar nicht gefordert wurde.
\end{Achtung}
\item Zur Zahlencodierung lassen sich unter anderem Abzählsysteme und Stellenwertsysteme verwenden. Vergleichen Sie beide Systeme anhand ihrer Vor- und Nachteile und geben Sie je ein konkretes Abzähl- und Stellenwertsystem als Beispiel mit Erläuterung an.
\begin{description}
\item[Abzählsysteme] \zB Fingerabzählsystem: Jeder Finger hat den Wert $1$ und man zählt die Anzahl an Fingern zusammen.
\begin{itemize}[noitemsep]
\item $\oplus$ sehr einfach
\item $\oplus$ übersichtlich
\item $\oplus$ Addition/Subtraktion einfach
\item $\ominus$ hoher Rechenaufwand für Multiplikation und Division $\Rightarrow$ komplex
\item $\ominus$ relativ kleiner Wertebereich
\item $\ominus$ beschränkter \textbf{übersichtlicher} Wertebereich (potenziell unbeschränkt)
\item \ldots
\end{itemize}
\item[Stellenwertsysteme] \zB Dezimalsystem: Es gibt die Ziffern $0$ bis $9$ und es gibt einen Stellenwert, welcher sich aus $10^i$ berechnet.
$Wert(z_{n-1}, z_{n-2}, \ldots, z_1, z_0) = \sum\limits_{i=0}^{n-1} |z_i| \cdot 10^i$
\begin{itemize}[noitemsep]
\item $\oplus$ geringer Aufwand beim Rechnen
\item $\ominus$ erstmaliges Lernen aufwändig
\item \ldots
\end{itemize}
\end{description}
\item Stellen Sie die Addition der Dezimalzahlen $-31$ und $-42$ nach Wahl im Binärcode oder als Strichliste dar. Begründen Sie Ihre Wahl der Codierung. Geben Sie das Ergebnis anschließend wieder als Dezimalzahl an. Zeigen Sie außerdem die genauen Teilschritte, welche Sie bei der Addition durchgeführt haben. Welche Entscheidungen mussten Sie bei der Darstellung der beiden Zahlen zusätzlich treffen?
Strichliste: Grundsätzlich möglich, da es zwei negative Zahlen sind. Man kann die Beträge addieren, jedoch ist die Strichliste dann sehr lang und unübersichtlich!
Deshalb wird das Binärsystem verwendet. Folgende Entscheidungen mussten noch getroffen werden:
\begin{itemize}[noitemsep]
\item 1er- oder 2er-Komplement? $\Rightarrow$ 2er-Komplement, um Rechenfehler zu vermeiden.
\item Die Stellenanzahl muss festgelegt werden! Es darf keine zu kurze Stellenanzahl gewählt werden, da ansonsten ein falsches Ergebnis rauskommt.
\end{itemize}
\begin{center}
\textit{[Rechnung hier]}
\small{\textit{[Teilschritte aufzeigen durch Rechnung (Ganzzahldivision, Addition von 2er-Potenzen, \ldots]}}
\end{center}
\begin{Achtung}
\begin{itemize}[noitemsep]
\item Wenn du trotzdem eine Strichliste verwendest, zählt Herr Röthig nach!
\item Wird das 1er-Komplement verwendet, so muss auf evtl. Rechenfehler reagiert werden!
\item In der Aufgabe steht \enquote{welche Entscheidungen}, also der Plural!
\item Wenn eine zu kurze Stellenanzahl gewählt wird und am Ende \enquote{getrickst} wird, um das richtige Ergebnis zu erhalten, so wird dies dennoch als Fehler gewertet, denn mit korrekter Rechnung würde ein falsches Ergebnis rauskommen.
\item Die Teilschritte sollen aufgezeigt werden, denn ansonsten \enquote{hätte ja auch ein Taschenrechner verwendet werden können}.
\end{itemize}
\end{Achtung}
\item Wie sieht die Darstellung der Dezimalzahl $-31$ als normierte Fließkommazahl im Binärsystem aus laut IEEE 754? Setze für das Vorzeichen 1~Bit, für die Mantisse 7~Bit und für den Exponenten 8~Bit bei einem Bias von $127$. Zeigen Sie auch hier die einzelnen Schritte, die Sie für die Berechnung der Darstellung vorgenommen haben.
\begin{center}
\textit{[Wahl der Normierungsvariante hier]}
\vspace*{-2mm}
\textit{\small{also ob die erste Stelle vor oder nach dem Komma \enquote{1} oder \enquote{0} ist, \enquote{Hidden~Bit}, \ldots}}
\vspace*{-2mm}
\textit{[Rechnung hier]}
\end{center}
\begin{Hinweis}
Alles, was nicht vorgegeben ist, kann von uns gewählt werden, allerdings muss es hingeschrieben werden. Auch ohne dass es gefordert ist, soll gesagt werden, dass es verschiedenen Varianten der Normierung gibt und welche Variante für die Darstellung genommen wird!
\end{Hinweis}
\end{enumerate}
\section{Aufgabe 2 (8~P.)}
\begin{enumerate}[label=\textsf{\textbf{\alph*)}},leftmargin=*]
\item Elektrische Schaltungen können als Schaltnetze oder Schaltwerke aufgebaut sein. Welche Eigenschaften, sowohl bezüglich Aufbau als auch Verhalten, unterscheiden ein Schaltwerk grundsätzlich von einem Schaltnetz? \textsf{\textbf{2~P.}}
\begin{description}
\item[Schaltwerke] \hfill \newline
\textit{Aufbau}: Rückkopplung der Ausgänge \newline
\textit{Verhalten}: Speichert einen Zustand
\item[Schaltnetze] \hfill \newline
\textit{Aufbau}: keine Rückkopplung, Umsetzung einer booleschen Funktion\newline
\textit{Verhalten}: Hat keinen Zustand des Speicherns.
\end{description}
\item Ein einfaches, ungetaktetes \acs{RS-FF} ist ein Beispiel für ein Schaltwerk. Zeichnen Sie das entsprechende Schaltwerk bestehend aus Elementargattern für ein ungetaktetes \acs{RS-FF} auf. Erläutern Sie die Eingänge und Ausgänge des Schaltwerks in Ihrer jeweiligen Funktion und Bedeutung. \textsf{\textbf{6~P.}}
\begin{center}
\begin{tikzpicture}[scale=1.2,font=\sffamily, circuit logic IEC, large circuit symbols,
knoten/.style={circle,fill,draw,inner sep=0pt,minimum size=1.5mm}]
\node[nor gate, inputs={nn}] at (0,2) (PORT) {};
\node[nor gate, inputs={nn}] at (0,0) (PORT2) {};
\node[left=of PORT.input 1] (A) {$S$};
\node[left=of PORT2.input 2] (B) {$R$};
\node[left=of PORT.input 2] (Y1) {$y'$};
\node[left=of PORT2.input 1] (X1) {$x'$};
\node[right=of PORT.output] (X) {$x$ $(Q*)$};
\node[right=of PORT2.output] (Y) {$y$ $(Q)$};
\draw (A) -- (PORT.input 1);
\draw (B) -- (PORT2.input 2);
\draw (Y1) -- (PORT.input 2);
\draw (X1) -- (PORT2.input 1);
\draw (X) -- (PORT.output);
\draw (Y) -- (PORT2.output);
\node at (0.5,1.25) {//};
\node at (0.5,0.7) {//};
\draw ($(X1)+(0.3,-0.02)$) -- ($(X1)+(0.3,0.6)$) -- ($(X)+(-0.85,-0.6)$) -- ($(X)+(-0.85,0)$);
\draw ($(Y1)+(0.3,0.02)$) -- ($(Y1)+(0.3,-0.6)$) -- ($(Y)+(-0.85,0.6)$) -- ($(Y)+(-0.85,0)$);
\node[knoten] at ($(X)+(-0.85,0)$) {};
\node[knoten] at ($(Y)+(-0.85,0)$) {};
\end{tikzpicture}
\end{center}
\begin{itemize}[noitemsep]
\item $Q$ ist der Zustand des Schaltwerks
\item $Q*$ ist der invertierte Zustand des Schaltwerks
\item $R$ ist der Rücksetzeingang
\item $S$ ist der Setzeingang
\item $R=S=0$ bedeutet, dass der Zustand gehalten wird
\item $R=S=1$ ist verboten, damit \enquote{nichts Schlimmes passiert}
\item \textit{[alle Belegungen erklären]}
\end{itemize}
\begin{Tipp}[frametitle={Wie $Q$ und $Q*$ herleiten?}]
Ist $S=1$, so soll der Zustand auf 1 gesetzt werden. Jedoch liegt an dem \texttt{NOR}-Gatter von $S$ der Wert $0$ an. Deshalb ist hier $Q*$ bzw. $\neg Q$.
\end{Tipp}
\end{enumerate}
\section{Aufgabe 3 (36~P.)}
\begin{enumerate}[label=\textsf{\textbf{\alph*)}},leftmargin=*]
\item Neben dem einfachsten Flip-Flop Typ, dem \acs{RS-FF}, gibt es weitere, in der Vorlesung behandelte Flip-Flop Typen. Nennen Sie diese Typen. Zeichnen Sie unter Verwendung von beliebig taktgesteuerten \acsp{RS-FF} und gegebenenfalls weiteren Elementargattern jeweils eine Schaltung dieses Flip-Flops und beschreiben Sie das jeweilige Verhalten. \textsf{\textbf{8~P.}}
\begin{description}
\item[\acs{D-FF}] \textit{[Zeichnung hier]}
\item[\acs{JK-FF}] \textit{[Zeichnung hier]} \newline
Agiert eigentlich so wie das \acs{RS-FF}, aber \ldots
\item[\acs{T-FF}] \textit{[Zeichnung hier]}
\end{description}
\begin{Tipp}[frametitle={Doppeltes vermeiden}]
Wenn ein Flip-Flop über den \acs{RS-FF} definiert wurde, so darf dieser als Baustein in den anderen verwendet werden!
\end{Tipp}
\item Manche Flip-Flop-Typen lassen sich mit und manche ohne Taktsteuerung einsetzen. Erläutern Sie bei jedem der Flip-Flop-Typen (inklusive \acs{RS-FF}) ob das Flip-Flop mit und ohne Taktsteuerung eingesetzt werden kann und sollte und welche Steuerung (Taktsteuerung/Taktflankensteuerung) jeweils eingesetzt werden kann. \textsf{\textbf{8~P.}}
\begin{description}
\item[\acs{RS-FF}] \hfill
\begin{itemize}[noitemsep]
\item Sowohl \acs{TFS} als auch \acs{TPS} machen Sinn und sind möglich.
\item \textit{\acl{TPS}}: Nur während des High-Pegels (bzw. Low-Pegels bei negativer \acs{TPS}) kann der \acs{RS-FF} gesetzt oder rückgesetzt werden.
\item \textit{\acl{TFS}}: Nur während der Flanke kann der RS-Flip-Flop gesetzt oder rückgesetzt werden. Die Störanfälligkeit durch Störsignale wird durch die kurze Zeit der Taktflanke reduziert.
\end{itemize}
\item[\acs{D-FF}] \hfill
\begin{itemize}[noitemsep]
\item macht ohne Taktsteuerung keinen Sinn, da dann nichts gespeichert wird!
\item \acs{TFS} und \acs{TPS} sind beide gleichermaßen möglich.
\end{itemize}
\item[\acs{JK-FF}] \hfill
\begin{itemize}[noitemsep]
\item wie \acs{RS-FF}: sowohl \acs{TPS} als auch \acs{TFS} machen Sinn.
\end{itemize}
\item[\acs{T-FF}] \hfill
\begin{itemize}[noitemsep]
\item ohne Taktsteuerung würde der \acs{T-FF} durchgehend toggeln! Deshalb ist eine Taktsteuerung Voraussetzung für einen \acs{T-FF}!
\item \acl{TFS} ist die vorzuziehende Steuerung, da der \acs{T-FF} dann genau \textbf{einmal} toggelt.
\item \acl{TPS} macht keinen Sinn, da der \acs{T-FF} während des gesamten High-Pegels (bzw. Low-Pegels bei negativer \acs{TPS}) toggeln würde.
\end{itemize}
\end{description}
\acs{TFS} dann, wenn die Anzahl der Toggle-Vorgänge, die bei manchen Flip-Flop-Typen passieren können, auf genau einmal toggeln begrenzen wollen.
\begin{center}
\textit{[Für weitere, siehe auf die Mitschriften]}
\end{center}
\begin{Achtung}
Hier steht in der Aufgabe \enquote{Erläutern}, \dash es reicht nicht nur zu sagen, ob das Flip-Flop mit Taktsteuerung eingesetzt werden kann/sollte, sondern auch \textit{warum}!
\enquote{Erläutern Sie ausführlich} würde heißen, dass zwei oder drei Stichpunkte gewünscht sind.
\end{Achtung}
\item Die verschiedenen Flip-Flop-Typen weisen jeweils Zustände auf, von denen jeweils wiederum ein Teil sogenannte Arbeitszustände darstellen. Wie viele Zustände weist jeder der Flip-Flip-Typen aus Teilaufgabe a) auf und wie viele Zustände sind davon jeweils Arbeitszustände? Ändert sich durch den Einbau einer Taktsteuerung aus Teilaufgabe b) etwas an diesen Anzahlen von Zuständen? Mit Begründung. Geben Sie gegebenenfalls die jeweilige Anzahl an Zuständen bei Einbau von Taktsteuerung bei den jeweiligen Flip-Flop-Typen an. \textsf{\textbf{12~P.}}
Jeder Flip-Flop Typ hat 4 Zustände, wobei davon 2 Arbeitszustände sind.
Denn jeder Flip-Flop ist als \acs{RS-FF} realisiert. Deshalb ist die Anzahl an Zuständen gleich. Die Rückkopplung findet nämlich nur intern am \acs{RS-FF} statt.
\begin{center}
\small{\textit{[Erklärung, warum \acs{RS-FF} 4 Zustände hat und dass eine}
\textit{Eingangsbelegung (nicht Zustand) verboten ist]}}
\end{center}
Die Anzahl der Zustände ändert sich durch Einbau einer Taktsteuerung \textbf{nicht}. Der Takt gibt nur an, \textit{wann} der Zustand geändert werden kann.
\item Welcher der Flip-Flop-Typen bietet sich zum Aufbau eines Binärzählers an? Bauen Sie für diesen Flip-Flop-Typ einen Zähler für eine 4-stellige Binärzahl. Wie viele Flip-Flops diesen Typs sind dafür notwendig? \textsf{\textbf{8~P.}}
Es sind 4 \acsp{T-FF} notwendig für einen 4~Bit Zähler.
Schaltbild für einen 4~Bit Rückwärtszähler:
\medskip
\begin{tikzpicture}[scale=1.2,font=\sffamily, circuit logic IEC, large circuit symbols,
knoten/.style={circle,fill,draw,inner sep=0pt,minimum size=1.5mm}]
\node at (0.6,0.6) {T-FF};
\node at (0,0) (R) {~~};
\node[below=of R] (S) {~~};
\node at ($(R) + (-0.2,-0.65)$) (T) {};
\node at ($(T) + (0.65,0)$) {T};
\node[right=of S] (Q2) {Q~~};
\node at ($(R)+(-1,0)$) (RText) {};
\node at ($(S)+(-1,0)$) (SText) {};
\node at ($(T)+(-0.6,0)$) (TText) {T};
\draw ($(R)+(-0.3,0.3)$) rectangle ($(Q2)+(0.3,-0.3)$);
\draw (T) -- (TText);
\draw ($(T)+(-0.1,0.2)$) -- ++(0.25,-0.2) -- ++(-0.25,-0.2);
\node at (3.6,0.6) {T-FF};
\node at (3,0) (R2) {~~};
\node[below=of R2] (S2) {~~};
\node at ($(R2) + (-0.2,-0.65)$) (T2) {};
\node at ($(T2) + (0.65,0)$) {T};
\node[right=of S2] (Q22) {Q~~};
\node at ($(Q22)+(1,0)$) (Q2Text2) {};
\node at ($(R2)+(-1,0)$) (RText2) {};
\node at ($(S2)+(-1,0)$) (SText2) {};
\draw ($(R2)+(-0.3,0.3)$) rectangle ($(Q22)+(0.3,-0.3)$);
\draw (Q22) -- (Q2Text2);
\draw ($(T2)+(-0.1,0.2)$) -- ++(0.25,-0.2) -- ++(-0.25,-0.2);
\node at (6.6,0.6) {T-FF};
\node at (6,0) (R3) {~~};
\node[below=of R3] (S3) {~~};
\node at ($(R3) + (-0.2,-0.65)$) (T3) {};
\node at ($(T3) + (0.65,0)$) {T};
\node[right=of S3] (Q23) {Q~~};
\node at ($(Q23)+(1,0)$) (Q2Text3) {};
\node at ($(R3)+(-1,0)$) (RText3) {};
\node at ($(S3)+(-1,0)$) (SText3) {};
\draw ($(R3)+(-0.3,0.3)$) rectangle ($(Q23)+(0.3,-0.3)$);
\draw (Q23) -- (Q2Text3);
\draw ($(T3)+(-0.1,0.2)$) -- ++(0.25,-0.2) -- ++(-0.25,-0.2);
\node at (9.6,0.6) {T-FF};
\node at (9,0) (R4) {~~};
\node[below=of R4] (S4) {~~};
\node at ($(R4) + (-0.2,-0.65)$) (T4) {};
\node at ($(T4) + (0.65,0)$) {T};
\node[right=of S4] (Q24) {Q~~};
\node at ($(Q24)+(1,0)$) (Q2Text4) {};
\node at ($(R4)+(-1,0)$) (RText4) {};
\node at ($(S4)+(-1,0)$) (SText4) {};
\draw ($(R4)+(-0.3,0.3)$) rectangle ($(Q24)+(0.3,-0.3)$);
\draw (Q24) -- (Q2Text4);
\draw ($(T4)+(-0.1,0.2)$) -- ++(0.25,-0.2) -- ++(-0.25,-0.2);
\draw (Q2) -- ($(Q2) + (1,0)$) |- (T2);
\draw (Q22) -- ($(Q22) + (1,0)$) |- (T3);
\draw (Q23) -- ($(Q23) + (1,0)$) |- (T4);
\node at (2,-1.4) {$Q_0$};
\node at (5,-1.4) {$Q_1$};
\node at (8,-1.4) {$Q_2$};
\node at (11,-1.4) {$Q_3$};
\end{tikzpicture}
\begin{Hinweis}
Hier wurde nicht explizit nach einem Vorwärts- oder Rückwärtszähler oder gar einem Zähler in beide Richtungen gefragt, sodass es uns überlassen ist, was wir wählen. Es muss nur mit angegeben werden.
\end{Hinweis}
\end{enumerate}
\section{Aufgabe 4 (22~P.)}
\begin{enumerate}[label=\textsf{\textbf{\alph*)}},leftmargin=*]
\item Gegeben ist die folgende Schaltung. Welche logische Funktion wird durch diese Schaltung realisiert? Geben Sie die Wertetabelle sowie einen booleschen Funktionsterm an. Handelt es sich bei dieser Schaltung um ein Schaltnetz oder Schaltwerk? Begründen Sie ihre Antwort. \textsf{\textbf{4~P.}}
\begin{center}
\begin{tikzpicture}[font=\sffamily, circuit logic IEC, large circuit symbols,
knoten/.style={circle,fill,draw,inner sep=0pt,minimum size=1.5mm}]
\node[and gate, inputs={nn}] at (0,2) (PORT) {};
\node[not gate] at (-1.8,2.5) (NOT) {};
\node[or gate, inputs={nn}] at (1.5,1) (PORT2) {};
\node[left=of PORT2.input 2] (C) {b};
\draw (PORT.input 1 -| -0.8,0) -- (PORT.input 1);
\draw (PORT.input 2 -| -0.8,0) -- (PORT.input 2);
\node at ($(NOT.input)+(-1.4,-0.7)$) (A) {a};
\draw (NOT.input) -| ($(NOT.input)+(-0.8,-0.7)$) -- (A);
\draw (PORT.input 2) -| ($(NOT.input)+(-0.8,-0.7)$);
\node[knoten] at ($(NOT.input)+(-0.8,-0.7)$) {};
\draw (NOT.output) -- ($(NOT.output)+(0.5,0)$) |- (PORT.input 1);
\draw (PORT.output) -| ([xshift=-5mm]PORT2.input 1) -- (PORT2.input 1);
\draw (C) -- (PORT2.input 2);
\draw (PORT2.output) -- ([xshift=8mm]PORT2.output);
\node[right=of PORT2.output] {?};
\end{tikzpicture}
\end{center}
Es handelt es sich um ein Schaltnetz, da es keine Rückkopplung gibt. Es wird zudem eine boolesche Funktion realisiert und dies kann nur über ein Schaltnetz geschehen, nicht aber über ein Schaltwerk.
Es wird die Funktion $(\overline{a}\wedge a) \vee b = 0 \vee b = b$ realisiert.
\begin{center}
\begin{tabular}{cc|c|c}
$b$ & $a$ & $\overline{a}$ & $(\overline{a}\wedge a)\vee b$ \\
\midrule
0 & 0 & 1 & 0 \\
0 & 1 & 0 & 0 \\
1 & 0 & 1 & 1 \\
1 & 1 & 0 & 1 \\
\end{tabular}
\end{center}
\item Als Darstellungsformen für die Funktionen von Schaltungen haben Sie in der Vorlesung boolesche Funktionsterme, Wertetabelle, \acs{KV}-Diagramme und Schaltnetze kennengelernt. Erläutern Sie diese Darstellungsformen in ihrem Zusammenhang untereinander sowie den Zusammenhang mit den Begriffen aus Teilaufgabe c) und b). \textsf{\textbf{6~P.}}
Zusammenhang:
\begin{itemize}[noitemsep]
\item Das \acs{KV}-Diagramm ist eine andere Darstellung der Wertetabelle
\item Boolesche Funktionsterme stellen die Funktion des Schaltnetzes dar.
\item \textit{[weitere Zusammenhänge hier]}
\end{itemize}
\begin{description}
\item[Min-Terme] Kann mit der Wertetabelle realisiert werden.
\item[Primimplikanten] Aus dem \acs{KV}-Diagramm (größtmögliche Blöcke)
\item[\acs{DNF}] Wertetabelle
\item[\acs{DMF}] Aus dem \acs{KV}-Diagramm ablesen (\acs{PI} verodern)
\end{description}
\item Nennen Sie alle Min-Terme sowie alle Primimplikanten, welche die Schaltung bestitzt. Welche funktionalen Gemeinsamkeiten in Bezug auf die Funktion der Schaltung haben Min-Terme und Primimplikanten? Wofür benötigen Sie die Min-Terme und wofür die Primimplikanten? \textsf{\textbf{6~P.}}
\begin{itemize}[noitemsep]
\item Min-Terme (aus Wertetabelle aus a) ):
\begin{itemize}[noitemsep]
\item $b\wedge\overline{a}$
\item $b\wedge a$
\end{itemize}
\item Primimplikanten: $b$ (bei großen Wertetabellen über \acs{KV}-Diagramm).
\item \acs{DMF}: $b$
\item \acs{DNF}: $(b\wedge a)\vee(b\wedge\overline{a})$
\end{itemize}
Min-Terme und Primimplikanten decken Einsen ab. Jeder Min-Term steht für eine \enquote{1} und jeder Primimplikant kann für mehrere Einsen stehen.
\begin{description}
\item[Minterme] für \acf{DNF}
\item[\acl{PI}] für \acf{DMF} (wobei nicht unbedingt alle \aclp{PI} benötigt werden)
\end{description}
\item Geben Sie die oder eine \acs{DNF} sowie \acs{DMF} für diese Schaltung an. Sind \acs{DNF} und \acs{DMF} grundsätzlich immer eindeutig? Mit Begründung. Wie sieht es mit der Eindeutigkeit von \acs{DNF} und \acs{DMF} bei der gegebenen Schaltung aus? Mit Begründung. \textsf{\textbf{6~P.}}
\begin{description}
\item[\acs{DNF}] $(b\wedge a)\vee(b\wedge\overline{a})$ \newline
Ist immer eindeutig, \textit{außer} die Reihenfolge der Min-Terme und innerhalb der Min-Terme.
\item[\acs{DMF}] $b$ \newline
Ist in diesem Fall eindeutig, da es nur (einen) \aclp{KPI} gibt. Ansonsten ist die \acs{DMF} eindeutig, wenn es nur Primimplikanten gibt, die auch Kernprimimplikanten sind. Es kann sich jedoch die Reihenfolge unterscheiden.
\end{description}
\end{enumerate}
\begin{Hinweis}
Aufgaben, die eventuell auch vorkommen können:
\begin{itemize}[noitemsep]
\item Beweisen eines Satzes (mit Angabe der verwendeten Gesetze)
\item Beweisen, dass eine Operatorenmenge ein vollständiges Operatorensystem ist.
\item Kondensatorspeicher -- Vor-/Nachteile (\enquote{andere Speicherprinzipe})
\item Anwendungen für Flip-Flop-Typen (\zB Lichtschalter)
\end{itemize}
\end{Hinweis}