TU Wien:Technische Grundlagen der Informatik VU (Kastner)/WS12 - Übung 1 - Lösung
Beispiel 1[Bearbeiten | Quelltext bearbeiten]
Angabe[Bearbeiten | Quelltext bearbeiten]
A=(117.6)10 B=(587.3525)10
A-a)[Bearbeiten | Quelltext bearbeiten]
n = 6 (6 Nachkommastellen)
Vorkomma:
Zahl | Operation | Rest |
---|---|---|
117 | mod 2 | 1 |
58 | mod 2 | 0 |
29 | mod 2 | 1 |
14 | mod 2 | 0 |
7 | mod 2 | 1 |
3 | mod 2 | 1 |
1 | mod 2 | 1 |
(117)10 = (111 0101)2
Nachkomma: (Es werden wenigstens 7 Stellen benötigt, um auf 6 Stellen runden zu können!)
Zahl | Operation | Rest |
---|---|---|
0.6 | 1 | |
0.2 | 0 | |
0.4 | 0 | |
0.8 | 1 | |
0.6 | 1 | |
0.2 | 0 | |
0.4 | 0 |
Wichtig sollte hierbei sein, die Periode zu erkennen.
(0.6)10 = (0.1001100)2
(117.6)10 = (111 0101.1001 10)2
A-b)[Bearbeiten | Quelltext bearbeiten]
n = 2 (2 Nachkommastellen)
Vorkomma:
Zahl | Operation | Rest |
---|---|---|
117 | mod 16 | 5 |
7 | mod 16 | 7 |
(117)10 = (75)16
Nachkomma: (Es werden wenigstens 3 Stellen benötigt, um auf 2 Stellen runden zu können!)
Zahl | Operation | Rest |
---|---|---|
0.6 | 9 | |
0.6 | 9 | |
0.6 | 9 |
Wichtig sollte hierbei sein, die Periode zu erkennen.
(0.6)10 = (0.999)16
(117.6)10 = (75.9A)16 (Anm: Es wird hier auf A gerundet, nicht auf 76, da im Hexdezimalsystem nicht 10 nach 9 kommt, sondern A.)
A-c)[Bearbeiten | Quelltext bearbeiten]
n = 4 (4 Nachkommastellen)
Vorkomma:
Zahl | Operation | Rest |
---|---|---|
117 | mod 6 | 3 |
19 | mod 6 | 1 |
3 | mod 6 | 3 |
(117)10 = (313)6
Nachkomma: (Es werden wenigstens 5 Stellen benötigt, um auf 4 Stellen runden zu können!)
Zahl | Operation | Rest |
---|---|---|
0.6 | 3 | |
0.6 | 3 | |
0.6 | 3 | |
0.6 | 3 | |
0.6 | 3 | |
... | ... | ... |
Wichtig sollte hierbei sein, die Periode zu erkennen.
(0.6)10 = (0.3333)6
(117.6)10 = (313.3334)6 (Anm: Es wird hier aufgerundet, da 3 im sedeniären System schon die Hälfte ist. (10/2 = 5, 6 / 2 = 3))
B-a)[Bearbeiten | Quelltext bearbeiten]
n = 6 (6 Nachkommastellen)
Vorkomma:
587 | mod 2 | 1 |
---|---|---|
293 | mod 2 | 1 |
146 | mod 2 | 0 |
73 | mod 2 | 1 |
36 | mod 2 | 0 |
18 | mod 2 | 0 |
9 | mod 2 | 1 |
4 | mod 2 | 0 |
2 | mod 2 | 0 |
1 | mod 2 | 1 |
(587)10 = (10 0100 1011)2
Nachkomma: (Es werden wenigstens 7 Stellen benötigt, um auf 6 Stellen runden zu können!)
Zahl | Operation | Rest |
---|---|---|
0.3525 | 0 | |
0.705 | 1 | |
0.41 | 0 | |
0.82 | 1 | |
0.64 | 1 | |
0.28 | 0 | |
0.56 | 1 |
(0.3525)10 = (0.010111)2
(587.3525)10 = (10 0100 1011.010111)2
B-b)[Bearbeiten | Quelltext bearbeiten]
(587.3525)10 = (?)16
587 | mod 16 | B |
36 | mod 16 | 4 |
2 | mod 16 | 2 |
(587)10 = (24B)16
Zahl | Operation | Rest |
---|---|---|
0.3525 | 5 | |
0.64 | A | |
0.24 | 3 |
(0.3525)10 = (0.5A3)16
Gerundet wird nach unten, weil 3 < 16 / 2 ist. Also (5A3)16=(0.5A>16
(587.3525)10 = (24B.5A)16
B-c)[Bearbeiten | Quelltext bearbeiten]
(587.3525)10 = (?)6
587 | mod 6 | 5 |
97 | mod 6 | 1 |
16 | mod 6 | 4 |
2 | mod 6 | 2 |
(587)10 = (2415)6
Zahl | Operation | Rest |
---|---|---|
0.3525 | 2 | |
0.115 | 0 | |
0.69 | 4 | |
0.14 | 0 | |
0.84 | 5 |
(0.3525)10 = (0.20405)6
(587.3525)10 = (2415.2041)6
Beispiel 2[Bearbeiten | Quelltext bearbeiten]
a[Bearbeiten | Quelltext bearbeiten]
Schwerer weg[Bearbeiten | Quelltext bearbeiten]
(8B5C3F.72DC)16 = (?)2
Vorkomma:
Operand | Operation | Ergebnis | Rest |
9133119 | mod 2 | 4566559 | 1 |
4566559 | mod 2 | 2283279 | 1 |
2283279 | mod 2 | 1141639 | 1 |
1141639 | mod 2 | 570819 | 1 |
570819 | mod 2 | 285409 | 1 |
285409 | mod 2 | 142704 | 1 |
142704 | mod 2 | 71352 | 0 |
71352 | mod 2 | 35676 | 0 |
35676 | mod 2 | 17838 | 0 |
17838 | mod 2 | 8919 | 0 |
8919 | mod 2 | 4459 | 1 |
4459 | mod 2 | 2229 | 1 |
2229 | mod 2 | 1114 | 1 |
1114 | mod 2 | 557 | 0 |
557 | mod 2 | 278 | 1 |
278 | mod 2 | 139 | 0 |
139 | mod 2 | 69 | 1 |
69 | mod 2 | 34 | 1 |
34 | mod 2 | 17 | 0 |
17 | mod 2 | 8 | 1 |
8 | mod 2 | 4 | 0 |
4 | mod 2 | 2 | 0 |
2 | mod 2 | 1 | 0 |
1 | mod 2 | 0 | 1 |
(8B5C3F)16=(100010110101110000111111)2
Nachkomma:
Ich erspar mir hier mal diese elend lange Rechnung.
(8B5C3F.72DC)16=(1000 1011 0101 1100 0011 1111.0111 0010 1101 11)2
Cheesy Weg[Bearbeiten | Quelltext bearbeiten]
Eine hexadezimal Stelle enstpricht immer genau 4 Bits.
8 | B | 5 | C | 3 | F | . | 7 | 2 | D | C |
1000 | 1011 | 0101 | 1100 | 0011 | 1111 | . | 0111 | 0010 | 1101 | 1100 |
(8B5C3F.72DC)16=(1000 1011 0101 1100 0011 1111.0111 0010 1101 11)2
b[Bearbeiten | Quelltext bearbeiten]
(1010 1100 0011 1011.0011 0010 11)2 = (?)8 Es gibt hier wieder zwei Wege. Den Mathematischen, und den einfachen.
Einfach[Bearbeiten | Quelltext bearbeiten]
Jeweils 3 Binärstellen sind eine Oktalstelle. (1112=78)
1 | 010 | 110 | 000 | 111 | 011 | . | 001 | 100 | 101 | 100 |
1 | 2 | 6 | 0 | 7 | 3 | . | 1 | 4 | 5 | 6 |
Mathematisch[Bearbeiten | Quelltext bearbeiten]
(1010 1100 0011 1011.0011 0010 11)2 = (20
+21
+23
+24
+25
+212
+213
+215
+217
+2-3
+2-4
+2-7
+2-11
+2-12
+2-13
) = (18+28+108+208+408+20008+40008+200008+1000008)+(0.18+0.048+0.0048+0.0018+0.00048+0.00028) =
(126073.1456)8
c[Bearbeiten | Quelltext bearbeiten]
Einfach[Bearbeiten | Quelltext bearbeiten]
Zwei stellen im Quatärnierensystem entsprich einer Stelle im Hexadezimalsystem.
03 | 12 | 01 | . | 31 | 02 | 20 |
3 | 6 | 1 | . | D | 2 | 8 |
Beispiel 3[Bearbeiten | Quelltext bearbeiten]
Grundlagen[Bearbeiten | Quelltext bearbeiten]
Additionsregeln:
Operand 1 | Operand2 | Ergebnis | Carry |
---|---|---|---|
1 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
Addition mit Carry: (Alle anderen Fälle folgen der obigen Tabelle.)
Operand 1 | Operand2 | Carry von letzter Addition | Ergebnis | Carry |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
a[Bearbeiten | Quelltext bearbeiten]
1 | 1 | 1 | 1 | 1 | 1 | Carry | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | . | 1 | 0 | 1 | Operand 1 | |
1 | 1 | 0 | 0 | 0 | 1 | 1 | . | 1 | Operand 2 | ||||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | . | 0 | 0 | 1 | Ergebnis |
b[Bearbeiten | Quelltext bearbeiten]
1 | 1 | 1 | 1 | 1 | Borrow | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | . | 1 | 0 | 1 | Operand 1 |
1 | 1 | 0 | 0 | 0 | 1 | 1 | . | 1 | Operand 2 | |||
0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | . | 0 | 0 | 1 | Ergebnis |
c[Bearbeiten | Quelltext bearbeiten]
1100011.1 : 101 = 10011.111001
d[Bearbeiten | Quelltext bearbeiten]
10110010.101 * 1000 |
10110010101 |
000000000000 |
0000000000000 |
00000000000000 |
10110010101.000 |
(Die Operation entspricht einem arithmetischem Links-Shift um 3 Stellen)
Beispiel 4[Bearbeiten | Quelltext bearbeiten]
A[Bearbeiten | Quelltext bearbeiten]
Operand | Operation | Ergebnis |
---|---|---|
5C8 | mod 2 | 0 |
2E4 | mod 2 | 0 |
1F2 | mod 2 | 0 |
B9 | mod 2 | 1 |
5C | mod 2 | 0 |
2E | mod 2 | 0 |
17 | mod 2 | 1 |
B | mod 2 | 1 |
5 | mod 2 | 1 |
2 | mod 2 | 0 |
1 | mod2 | 1 |
a[Bearbeiten | Quelltext bearbeiten]
0101 1100 10002 / 5C816
b[Bearbeiten | Quelltext bearbeiten]
0010 0011 10002 / 5C816
c[Bearbeiten | Quelltext bearbeiten]
1101 1100 01112 / DC716
B[Bearbeiten | Quelltext bearbeiten]
Operand | Operation | Ergebnis |
---|---|---|
348 | mod 2 | 0 |
174 | mod 2 | 0 |
87 | mod 2 | 1 |
43 | mod 2 | 1 |
21 | mod 2 | 1 |
10 | mod 2 | 0 |
5 | mod 2 | 1 |
2 | mod 2 | 0 |
1 | mod 2 | 1 |
a[Bearbeiten | Quelltext bearbeiten]
1001 0101 11002 / 95C16
b[Bearbeiten | Quelltext bearbeiten]
1110 1010 01002 / EA416
c[Bearbeiten | Quelltext bearbeiten]
0110 1010 00112 / 6A316
C[Bearbeiten | Quelltext bearbeiten]
010 = 02
a[Bearbeiten | Quelltext bearbeiten]
Es gibt 2 Darstellungen für 0 in der Vorzeichen-Betrag Darstellung. 0000 0000 00002 / 00016 ( = +0) 1000 0000 00002 / 80016 ( = -0)
b[Bearbeiten | Quelltext bearbeiten]
0000 0000 00002 / 016
c[Bearbeiten | Quelltext bearbeiten]
0111 1111 11112 / 7FF16
Beispiel 5[Bearbeiten | Quelltext bearbeiten]
Z1=0010012, Z2=1011012
a[Bearbeiten | Quelltext bearbeiten]
001001 |
101101 |
110110 |
Invertieren im 2er-Komplement: -(110110) + 1 = 1001 + 1 = 1010
b[Bearbeiten | Quelltext bearbeiten]
001001 |
101101 |
100100 |
Invertieren im Vorzeichen-Betrag System (Erstes Bit Flippen): -(100100) = 100
c[Bearbeiten | Quelltext bearbeiten]
001001 |
101101 |
110110 |
-100111 |
001111 |
Invertieren im Exzess-System:
100111 |
-001111 |
011000 |
+100111 |
111111 |
Beispiel 6[Bearbeiten | Quelltext bearbeiten]
Interpretation | Berechnung | Dezimal Wert |
---|---|---|
Vorzeichen und Betrag | -(2+4+16) | -22 |
Zweierkomplement | -128 + 2 + 4 + 16 | -106 |
Exzessdarstellung | 2 + 4 + 16 + 128 | 23 |
Festpunktdarstellung | -(2 + 0.5 + 0.25) | -2.75 |
Beispiel 7[Bearbeiten | Quelltext bearbeiten]
a[Bearbeiten | Quelltext bearbeiten]
0.710=?2
Operand | Operation | Ergebnis |
---|---|---|
0.7 | 1 | |
0.4 | 0 | |
0.8 | 1 |
Alle folgenden Nachkommastellen werden abgetrennt. 0.710=0.1012(Auf 3 Nachkommastellen)=0.62510
Relativer Rundungsfehler[Bearbeiten | Quelltext bearbeiten]
Formel:
b[Bearbeiten | Quelltext bearbeiten]
Untergrenze: 0.1010002 = 0.1012
Obergrenze: 0.1011112 =
Interval: [0.625, 0.75[ => 0.1012
Beispiel 8[Bearbeiten | Quelltext bearbeiten]
A[Bearbeiten | Quelltext bearbeiten]
Sign-Bit: 1
Operand | Operation | Ergebnis |
---|---|---|
1025 | mod 2 | 1 |
512 | mod 2 | 0 |
256 | mod 2 | 0 |
128 | mod 2 | 0 |
64 | mod 2 | 0 |
32 | mod 2 | 0 |
16 | mod 2 | 0 |
8 | mod 2 | 0 |
4 | mod 2 | 0 |
2 | mod 2 | 0 |
1 | mod 2 | 1 |
Operation | Ergebnis |
---|---|
1 | |
0 | |
1 | |
1 |
Exponent: 210 = 1024 < 1025 => 127 + 10 = 137 = 1000 10012
1025.687510 = 1000 0000 0001.10112
Normalisiert: 1.0000 0000 0110 112 * (101010)2
Sign Bit | Exponent | Mantisse |
---|---|---|
1 | 1000 1001 | 0000 0000 0110 1100 0000 000 |
B[Bearbeiten | Quelltext bearbeiten]
Sign-Bit: 0
Operand | Operation | Ergebnis |
---|---|---|
515 | mod 2 | 1 |
257 | mod 2 | 1 |
128 | mod 2 | 0 |
64 | mod 2 | 0 |
32 | mod 2 | 0 |
16 | mod 2 | 0 |
8 | mod 2 | 0 |
4 | mod 2 | 0 |
2 | mod 2 | 0 |
1 | mod 2 | 1 |
Operation | Ergebnis |
---|---|
1 | |
0 | |
0 | |
1 |
Exponent: 29 = 512 < 515 => 127 + 9 = 136 = 1000 10002 515.562510 = 10 0000 0011.10012 Normalisiert: 1.0000 0001 1100 12 * (101001)2
Sign Bit | Exponent | Mantisse |
---|---|---|
0 | 1000 1000 | 0000 0001 1100 1000 0000 000 |
Beispiel 9[Bearbeiten | Quelltext bearbeiten]
a[Bearbeiten | Quelltext bearbeiten]
(1 101 1011)2 = ?10 (Normalisiert)
Sign-Bit: 1 => Zahl ist negativ
Exponent: 1012 = 510 - 310 = 210
n = -12 * (1.10112) * 1002 = -6.7510
b[Bearbeiten | Quelltext bearbeiten]
(0 000 0100)2 = ?10 (Denormalisiert)
Sign-Bit: 0 => Zahl ist positiv
Exponent: 310
n = 0.012 * (101-112) = 0.012 * 1 / 1002 = 0.00012 = 2-4 = 0.062510
c[Bearbeiten | Quelltext bearbeiten]
0 111 0000 = +∞10 (Per Definition)
d[Bearbeiten | Quelltext bearbeiten]
0 010 1010 = =10
Sign-Bit: 0
Exponent: .(011 - 010) = -1
n = 1.10102 * 102^-1 = 0.11012=0.510 + 0.2510 + 0.062510 = 0.812510
e[Bearbeiten | Quelltext bearbeiten]
1 000 0000 = ?10
Sign-Bit: 1
Exponent = Mantisse = 0
(1 000 0000)2 = -010 = +010
Beispiel 10[Bearbeiten | Quelltext bearbeiten]
A = 3.2583 * 10-15
B = 7.5025 * 10-19
C = 2.75 * 10-22
a[Bearbeiten | Quelltext bearbeiten]
A+B
Mantisse | Exponent | Guard | Round | Sticky |
---|---|---|---|---|
3.2583 | 10-15 | |||
0.0007 | 10-15 | 5 | 0 | 1 |
3.2490 | 10-15 | 5 | 0 | 1 |
Gerundet (Guard = 5, Sticky = 1 -> Aufrunden) | ||||
3.2591 | 10-15 |
Exponent neu berechnen: 49-15 = 34
IEEE 754 DarstellungSignbit | Exponent | Mantisse |
---|---|---|
0 | 34 | 32591 |
b[Bearbeiten | Quelltext bearbeiten]
C = 2.75*10-22 = 0.0027*10-19 Guard: 5, Round: 0, Sticky: 0
B+C:
Mantisse | Exponent | Guard | Round | Sticky |
---|---|---|---|---|
7.5025 | 10-19 | |||
0.0027 | 10-19 | 5 | 0 | 0 |
7.5052 | 10-19 | 5 | 0 | 0 |
Gerundet: | ||||
7.5052 | 10-19 |
A-(B+C): 7.5052*10-19 = 0.0007 * 10-15 Guard: 5, Round: 0, Sickty: 1
Mantisse | Exponent | Guard | Round | Sticky |
---|---|---|---|---|
3.2583 | 10-15 | |||
0.0007 | 10-15 | 5 | 0 | 1 |
3.2575 | 10-15 | 5 | 0 | 1 |
Gerundet: | ||||
3.2575 | 10-15 |
IEEE 754 Darstellung:
Sign-Bit | Exponent | Mantisse |
---|---|---|
0 | 34 | 32575 |