Skip to content

Commit 34ee62f

Browse files
authored
Merge pull request #2 from TUBAF-IfI-LiaScript/master
Update04-12-2020
2 parents 42be124 + ccbd803 commit 34ee62f

9 files changed

Lines changed: 568 additions & 155 deletions

File tree

.github/workflows/authors.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ juliankeppler
66
FnHm
77
Florian2501
88
gjaeger1
9+
fb89zilla

09_Rechnerarithmetik.md

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ Jede natürliche Zahl $z$ mit $0 \leq z \leq b^n–1$ ist eindeutig als $n$-stel
147147

148148
$$
149149
\begin{aligned}
150-
z &= (z_{n-1} z_{n-2} z_{n-3} ... z_{2} z_{1} z_{0})_{2} \\
150+
z &= (z_{n-1} z_{n-2} z_{n-3} ... z_{2} z_{1} z_{0})_{b} \\
151151
z &= z_{n-1} \cdot b^{n-1} + z_{n-2} \cdot b^{n-2} + .... + z_{1} \cdot b^{1} + z_{0} \cdot b^{0}\\
152152
\end{aligned}
153153
$$
@@ -165,7 +165,7 @@ Beispiel $FE01_{16}=15 \cdot 16^3 + 14 \cdot 16^2 + 0 \cdot 16^1 + 1 \cdot 16^0
165165

166166
> **Aufgabe:** Informieren Sie sich über das _Sexagesimalsystem_ der babylonischen Mathematik! Warum verwendete man die 60 als Grundlage?
167167
168-
> **Merke:** Mit der Darstellung einer Zahl im binären Zahlensystem sinkt die Zahl der Ziffernsymbole gleichzeitig steigt die Zahl der notwendigen Stellen an! Wir brauchen mehr Platz.
168+
> **Merke:** Mit der Darstellung einer Zahl im binären Zahlensystem sinkt die Zahl der Ziffernsymbole. Gleichzeitig steigt die Zahl der notwendigen Stellen an! Wir brauchen mehr Platz.
169169
170170
Beispiel: $214_{10}$
171171

@@ -181,7 +181,7 @@ Beispiel: $214_{10}$
181181
{{3-5}}
182182
********************************************************************************
183183

184-
Algorithmus zur Umwandlung einer ganzen Zahl z aus dem Dezimalsystem in eine Zahl x zur Basis b:
184+
Für die Realisierung der Wandlung einer dezimalen Zahl $z$ in eine Zahl x zur Basis b folgt man folgendem Algorithmus:
185185

186186
```
187187
i=0
@@ -211,25 +211,19 @@ Der Teiler definiert das avisierte Zahlensystem
211211
212212
```
213213

214-
> Eine weitere Möglichkeit eine dezimale in eine binäre Zahl umzuwandeln:
214+
Für binäre Zahlen kann mit Blick auf die bekannten Zweierpotenzen auch effizienter
215+
vorgegangen werden:
215216

216-
> 1. Man schreibe alle Zweierpotenzen, welche kleiner als die Dezimalzahl sind, rückwärts auf (beginne von rechts und schreibe links jeweils den mit 2 multiplizierten Wert).
217-
2. Nun setzt man von links nach rechts eine 1 unter jede Potenz welche in die dezimale Zahl passt und subtrahiert die Potenz von der Zahl.<br>Wenn die Potenz nicht in die Zahl passt schreibt man eine 0.
217+
1. Man schreibe alle Zweierpotenzen, welche kleiner als die Dezimalzahl sind, rückwärts auf (beginne von rechts und schreibe links jeweils den mit 2 multiplizierten Wert).
218+
2. Nun setzt man von links nach rechts eine 1 unter jede Potenz welche in die dezimale Zahl passt und subtrahiert die Potenz von der Zahl. Wenn die Potenz nicht in die Zahl passt schreibt man eine 0.
218219
3. Dies wird wiederholt bis alle Potenzen belegt sind.
219220

220-
> <!--
221-
style="padding-left:70px;"
222-
-->__Beispiel:__ $242_{10}$ in binär
223-
224-
> <!--
225-
style="padding-left:70px;"
226-
-->|128 |64 |32 |16 |8 |4 |2 |1 |
227-
> |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
228-
> |1 |1 |1 |1 |0 |0 |1 |0 |
229-
> |242-128=114 |114-64=50 |50-32=18 |18-16=2 |- |- |2-2=0 |- |
230-
231-
> _Sonderfall:_ Die Dezimalzahl entspricht einer Zweierpotenz.
221+
__Beispiel:__ $242_{10}$ in binär
232222

223+
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
224+
| ----------- | --------- | -------- | ------- | ----- | ----- | ----- | --- |
225+
| 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
226+
| $242-128=114$ | $114-64=50$ | $50-32=18$ | $18-16=2$| $2-8<0$ | $2-4<0$ | $2-2=0$ | $0-1<0$ |
233227

234228
> **Aufgabe:** Wandeln Sie die Zahl $523_{10}$ in eine binäre Zahl um.
235229
@@ -249,14 +243,16 @@ style="width: 80%; min-width: 420px; max-width: 720px;"
249243
16 / 2 = 8 Rest 0 | .
250244
8 / 2 = 4 Rest 0 |
251245
4 / 2 = 2 Rest 0 |
252-
2 / 2 = 1 Rest 1 v
246+
2 / 2 = 1 Rest 0 |
247+
1 / 2 = 0 Rest 1 v
253248
```
249+
$523_{10}$=$1000001011_{2}$
254250

255251
********************************************************************************
256252

257253
### Gebrochene Zahlen
258254

259-
Die Römer nutzten Brüche mit der Basis 12(!). Die Nutzung der 12 lag nahe, weil sich die am häufigsten benötigten Brüche _eine Hälfte_, _ein Drittel_ und _ein Viertel_ durch Vielfache von $1/12$ darstellen lassen. Der römische Name für ein Zwölftel ist Uncia, ein Wort, das später zum Gewichtsmaß _Unze_ wurde. Für Brüche, deren Zähler um 1 kleiner als der Nenner ist, wurde teilweise eine subtraktive Bezeichnung verwendet.
255+
Die Römer nutzten Brüche mit der Basis 12(!). Die Nutzung der 12 lag nahe, weil sich die am häufigsten benötigten Brüche *eine Hälfte*, _ein Drittel_ und _ein Viertel_ durch Vielfache von $1/12$ darstellen lassen. Der römische Name für ein Zwölftel ist Uncia, ein Wort, das später zum Gewichtsmaß _Unze_ wurde. Für Brüche, deren Zähler um 1 kleiner als der Nenner ist, wurde teilweise eine subtraktive Bezeichnung verwendet.
260256

261257
Die Darstellung einer gebrochenen Zahl ist in einem $b$-adischen System mit $n$ Vorkomma und $m$ Nachkommastellen definiert mit:
262258

@@ -271,7 +267,7 @@ $$
271267
| ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | -------- | -------- | -------- | -------- |
272268
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 | 0.0625 |
273269

274-
Beispiel: $1011,1101 = 4 + 2 + 1 + 0.5 + 0.25 +0.625 = 11.8125$
270+
Beispiel: $1011,1101 = 8 + 2 + 1 + 0.5 + 0.25 + 0.625 = 11.8125$
275271

276272
```
277273
i=0
@@ -285,23 +281,24 @@ wiederhole, bis z=0:
285281
i++
286282
```
287283

288-
Beispiel 1: Wandeln Sie $0.8125_{10}$ in eine duale Zahl
284+
Beispiel 1: Wandeln Sie $0.28125_{10}$ in eine duale Zahl
289285

290286
<!--
291287
style="width: 80%; min-width: 420px; max-width: 720px;"
292288
-->
293289
```ascii
294290
Der Faktor definiert das avisierte Zahlensystem
295-
|
296-
v
297-
0.8125 ∙ 2 = 1.625 1 Rest 0.625
298-
0.625 ∙ 2 = 1.25 1 Rest 0.25
299-
0.25 ∙ 2 = 0.5 0 Rest 0.5
300-
0.5 ∙ 2 = 1 1 Rest 0 .
291+
|
292+
v
293+
0.28125 ∙ 2 = 0.5625 "<" 1 -> 0 Rest 0.5625
294+
0.5625 ∙ 2 = 1.125 ">" 1 -> 1 Rest 0.125
295+
0.125 ∙ 2 = 0.25 "<" 1 -> 0 Rest 0.25
296+
0.25 ∙ 2 = 0.5 "<" 1 -> 0 Rest 0.5
297+
0.5 ∙ 2 = 1 "<="1 -> 1 Rest 0 .
301298
302299
```
303300

304-
Ergebnis $0.8125_{10} = 0.1011$
301+
Ergebnis $0.28125_{10} = 0.25 + 0.03125 = 0.01001$
305302

306303
> Beispiel 2: Wandeln Sie $0.1_{10}$ in eine duale Zahl
307304
@@ -384,7 +381,7 @@ Die Addition zweier positiver n-stelliger Binärzahlen $a$ und $b$ kann stellenw
384381
| ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ------------- | --------------------- |
385382
| + | $0$ | $1$ | $0$ | $1$ | $0$ | $1$ | $1$ | $0$ | Summand B $(86)_{10}$ |
386383
| @red($0$) | @blue($0$) | @blue($0$) | @blue($1$) | @blue($0$) | @blue($1$) | @blue($1$) | @blue($0$) | @blue( $0$ ) | @blue($Carry$) |
387-
| | $0$ | $1$ | $1$ | $0$ | $1$ | $1$ | $0$ | $1$ | Ergebnis $(109)^{10}$ |
384+
| | $0$ | $1$ | $1$ | $0$ | $1$ | $1$ | $0$ | $1$ | Ergebnis $(109)_{10}$ |
388385

389386
Kein Überlauf!
390387

@@ -410,8 +407,8 @@ style="width: 80%; min-width: 420px; max-width: 720px;"
410407
| | $0$ | $0$ | $1$ | $1$ | $0$ | $1$ | $1$ | $1$ | Summand A $(55)_{10}$ |
411408
| --- | --- | --- | --- | --- | --- | --- | --- | --- | ---------------------- |
412409
| + | $1$ | $1$ | $0$ | $1$ | $0$ | $1$ | $1$ | $0$ | Summand B $(214)_{10}$ |
413-
| @red($1$) | @blue($1$) | @blue($1$) | @blue($1$) | @blue($1$) |@blue($0$) | @blue($1$) | @blue($1$) |@blue( $0$ ) | @blue($Carry$) |
414-
| | $0$ | $1$ | $1$ | $0$ | $1$ | $1$ | $0$ | $1$ | Ergebnis $(269)^{10}$ |
410+
| @red($1$) | @blue($1$) | @blue($1$) | @blue($1$) | @blue($0$) |@blue($1$) | @blue($1$) | @blue($0$) |@blue( $0$ ) | @blue($Carry$) |
411+
| | $0$ | $0$ | $0$ | $0$ | $1$ | $1$ | $0$ | $1$ | Ergebnis $(269)_{10}$ |
415412

416413
Der Intel 4004 hatte eine Datenbreite von 4 Bit. Er verknüpfte für die Akkumulation von 2 32 Bit Zahlen 4 Einzelkalkulationen und reichte das Carry-Flag entsprechend weiter.
417414

@@ -427,8 +424,8 @@ Der Intel 4004 hatte eine Datenbreite von 4 Bit. Er verknüpfte für die Akkumul
427424
428425
| Kriterien | Erläuterung |
429426
| ----------------------------------- | ------------------------------------------------------------------------------- |
430-
| Einheitlichkeit von Addition Subtraktion | Können wir die Subtraktion und Addition über ein Rechenwerk umsetzen? |
431-
| Symmetrie | Ist das Spektrum der darstellbaren Zahlenwerte im positiv wie negativen gleich? |
427+
| Einheitlichkeit von Addition & Subtraktion | Können wir die Subtraktion und Addition über ein Rechenwerk umsetzen? |
428+
| Symmetrie | Ist das Spektrum der darstellbaren Zahlenwerte im Positiven wie Negativen gleich? |
432429
| | |
433430

434431
********************************************************************************
@@ -532,7 +529,7 @@ Die Zweierkomplementdarstellung benötigt, anders als die Einerkomplementdarstel
532529
| Darstellung | Pros | Cons |
533530
| ----------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
534531
| | + eindeutige Darstellung der Null als $000...0_2$ | - darstellbarer Zahlenbereich ist asymmetrisch (Zweierkomplement der kleinsten negativen Zahl ist nicht darstellbar!) |
535-
| | | + Umwandlung von positiver zu negativer Zahl und umgekehrt erfordert die Invertierung aller Bits sowie ein Addierwerk zur Addition von 1 |
532+
| | | - Umwandlung von positiver zu negativer Zahl und umgekehrt erfordert die Invertierung aller Bits sowie ein Addierwerk zur Addition von 1 |
536533

537534
********************************************************************************
538535

@@ -548,7 +545,7 @@ Die Zweierkomplementdarstellung benötigt, anders als die Einerkomplementdarstel
548545
| Einerkomplement | + der darstellbare Zahlenbereich ist symmetrisch zu 0 | - Doppelte „0“ - $0000...0_2$ und $1111...1_2$ |
549546
| | + sehr einfache Umwandlung von positiver zu negativer Zahl und umgekehrt durch Invertierung aller Bits | - Addierwerke sind aufwendiger, da die Summe korrigiert werden muss |
550547
| Zweierkomplement | + eindeutige Darstellung der Null als $000...0_2$ | - darstellbarer Zahlenbereich ist asymmetrisch (Zweierkomplement der kleinsten negativen Zahl ist nicht darstellbar!) |
551-
| | | + Umwandlung von positiver zu negativer Zahl und umgekehrt erfordert die Invertierung aller Bits sowie ein Addierwerk zur Addition von 1 |
548+
| | | - Umwandlung von positiver zu negativer Zahl und umgekehrt erfordert die Invertierung aller Bits sowie ein Addierwerk zur Addition von 1 |
552549

553550

554551
> **Merke:** In aktuellen Rechnern wird ausschließlich das Zweierkomplement verwandt.
@@ -578,10 +575,10 @@ Die Zweierkomplementdarstellung benötigt, anders als die Einerkomplementdarstel
578575
01001 = 9 10101 = -11
579576
```
580577

581-
Bei beliebig großen Registern zur Aufnahme der Komplementdarstellung einer binären Zahl können Addition und Subtraktion ohne Einschränkungen ausgeführt werden. ABER: Mit der Beschränkung kann de
578+
Bei beliebig großen Registern zur Aufnahme der Komplementdarstellung einer binären Zahl können Addition und Subtraktion ohne Einschränkungen ausgeführt werden. ABER: Mit der Beschränkung kann die
582579

583-
+ Addition zweier positiver Zahlen kann eine negative Zahl ergeben !
584-
+ Addition zweier negativer Zahlen kann eine positive Zahle ergeben !
580+
+ Addition zweier positiver Zahlen eine negative Zahl ergeben !
581+
+ Addition zweier negativer Zahlen eine positive Zahle ergeben !
585582

586583
Entsprechend müssen Überschreitungen des Zahlenbereiches erkannt und behandelt werden. Die Bedingungen dafür sind: Gegeben die Operanden $a$ und $b$ und das Ergebnis $s$
587584

@@ -659,7 +656,7 @@ Die Wahrheitstafel lässt sich mit folgendem Schaltnetz umsetzen:
659656
{{2-3}}
660657
********************************************************************************
661658

662-
**Volladierer**
659+
**Volladdierer**
663660

664661
Die allgemeingültige Addition von $A_i$, $B_i$ und $C_{i–1}$ an den Bitpositionen $i = 1, ... , n–1$ erfordert einen Volladdierer (FA = „Full Adder“), der die Summe $S_i$ und den Übertrag $C_i$ bestimmt:
665662

@@ -688,7 +685,7 @@ Gleichungen
688685
<td>
689686
$$
690687
\begin{aligned}
691-
S_i &= A_i \oplus B_i \oplus C_i\\
688+
S_i &= A_i \oplus B_i \oplus C_{i-1}\\
692689
C_i &= \overline{A_i}B_i C_{i-1} + A_i\overline{B_i}C_{i-1} + A_iB_i\overline{C}_{i-1} + A_iB_iC_{i-1} \\
693690
C_i &= (\overline{A_i}B_i + A_i\overline{B_i} )C_{i-1} + A_iB_i \\
694691
&= (A_i \oplus B_i)C_{i-1} + A_iB_i \\
@@ -699,7 +696,7 @@ $$
699696
</tr>
700697
</table>
701698

702-
> **Aufgabe:** Die obige Gleichungen sind identisch und unterscheiden sich nur durch $/oplus$ und $+$. Erklären Sie den vermeintlichen Widerspruch.
699+
> **Aufgabe:** Die obigen Gleichungen sind identisch und unterscheiden sich nur durch $\oplus$ und $+$. Erklären Sie den vermeintlichen Widerspruch.
703700
704701
![](./images/09_Arithmetik/Full_Adder.svg.png)<!-- style="width: 45%; max-width: 600px;" -->
705702
![](./images/09_Arithmetik/Full_Adder_Symbol_2HA.png)<!-- style="width: 15%; max-width: 800px;" -->

0 commit comments

Comments
 (0)