Dokumentieren 21469269

Werbung
Lehrveranstaltung:
Einführung in die Informatik
26.10.2003
Übungsblatt 3
© Thomas Aichholzer
([email protected])
Aufgabe 1
a) Geben Sie für das Quellalphabet: = , + , - , * , / , ^ , ( , ) , [ , ] , { , } sowohl eine Codierung
fester als auch variabler Länge in das Zielalphabet: a, b, c an. Zeichnen Sie die
entsprechenden Codebäume auf. Welches allgemeine Merkmal unterscheidet diese beiden
Codebäume?
b) Welches Problem sehen Sie bei der Weiterleitung von mit variabler Länge codierten
Codewörtern, welches bei der mit fester Länge codierten Variante nicht auftritt?
ad a)
= , + , - , * , / , ^ , ( , ) , [ , ] , { , } sind 12 Möglichkeiten die codiert werden sollen.
ln(12) 2,4849...
fester Länge werden daher 3 log(12) =
=
= 2,2618... also 3 Stellen benötigt.
ln(3) 1,0986...
Codebaum fester Länge:
a
c
b
a
b
c
a
a
c
a b
c
a b
c
a b
c
a b
c a
c
=
+
*
/
^
(
)
[
]
{
}
Codebaum variabler Länge:
a
b
=
a
b
*
/
c
^
c
+
-
a
b
c
(
)
[
a
]
b
c
{
}
31 + 32 = 3 + 9 = 12 Möglichkeiten der Darstellung von Codewörtern à voller Baum.
ad b)
Bei variabler Länge muss ein festgelegt sein wann das Codewort endet und das nächste
anfängt. Es muss daher ein Stoppzeichen oder etwas derartiges vereinbart werden um das
Ende eines Codewortes festzulegen.
Bei fester Länge hingegen ist das egal, da jedes Codewort die gleiche Länge besitzt und somit
eindeutig bestimmt ist.
Aufgabe 2
a) Wie viele Zahlen kann ein Codesystem über ein Zielalphabet, bestehend aus 2 Zeichnen,
mit max. Codewörterlänge 8 codieren, wenn wir
- feste Codierung benützen?
- variable Codierung benützen?
b) Wie viele Stellen müssten die Codewörter eines Binärcodes mindestens besitzen, um ein
aus 777 verschiedenen Zeichnen bestehendes Quellalphabet
- mit fester Länge zu codieren?
- mit variabler Länge zu codieren?
ad a)
Bei fester Codelänge werden nur die Enden (Blätter) des Codebaumes als Codewort
verwendet. Es gibt daher 28 Möglichkeiten für Codewörter.
Bei variabler Länge ist das anders. Hier kann jede Ebene außer der Wurzel selbst eine
Möglichkeit sein ein Codewort darzustellen. Es gibt daher 29 – 2 (28+1-1-1 (Wurzel))
Möglichkeiten.
Seite 1
Lehrveranstaltung:
Einführung in die Informatik
26.10.2003
Übungsblatt 3
© Thomas Aichholzer
([email protected])
ad b)
Bei fester Länge die Anzahl der Stellen zu ermitteln bei vorgegebener Anzahl der
Möglichkeiten (777) ist relativ einfach. Man rechnet das Ergebnis des 2er Logarithmus aus
und rundet das Ergebnis auf: 2log(777)
ln(777) 6,65544...
aufrunden ergibt: 10 (Bits)
=
= 9,60177...
2 log(777) =
ln(2)
0,69314...
Bei variabler Länge ist es etwas komplizierter. Man berechnet auch zuerst wie bei fester
Länge die Bits und zieht dann vom Ergebnis ein Bit ab. Man muss jedoch darauf achten, das
die Anzahl der Möglichkeiten bei der so errechneten Bits – Anzahl nicht zu niedrig ist:
9 Bits … 210 – 2 = 1022 > 777
è
daher reichen 9 Bits aus.
Aufgabe 3
a) Wofür sind Paritätsbits geeignet? Zeigen Sie eigene Beispiele, die in der Vorlesung nicht
behandelt wurden!
b) Wie kann man Sonderzeichen für Drucker in einem 7-bit-Code darstellen?
ad a)
Das Paritätsbit, oder auch Paritybit ist nur für einfache Fehlererkennung geeignet. Somit
können einzelne Fehler in einem Codewort erkannt werden.
Das Prinzip ist einfach: Man hat ein Codewort mit der Länge n und je nach Vereinbarung
wird das Paritätsbit bei gerader / ungerader Anzahl der 1en im Codewort auf logisch 0 oder 1
gesetzt. Sinn dahinter ist jener, es können somit in einem Codewort der lange n + 1
(Paritätsbit) nur eine gerade Anzahl von 1en vorkommen (sollte die Vereinbarung anders
getroffen sein, dann nur ungerade Anzahlen von 1en).
Beispiele:
In unserem Beispiel wird das Paritätsbit bei gerader Anzahl von 1en auf 0 gesetzt, sonst auf 1.
Codewort (7 Bit)
Paritätsbit
neues Codewort (8 Bit)
0100110
1
10100110
1001011
0
01001011
Sollte nun ein einziges Bit umspringen, so wird die Anzahl der 1en ungerade und es kann
daher der Fehler entdeckt werden. Sollten jedoch mehrere Bits umspringen sodass die Anzahl
der 1en gerade bleibt, so wird der Fehler unerkannt bleiben.
ad b)
Man vereinbart über nichtdarstellbare Zeichen eine ESC – Sequenz (ESCAPE – Sequenz).
Diese ESC – Sequenz lässt den Drucker in einen anderen Modus umschalten und dort kann
dann ein eigener Codesatz verwendet werden (Sonderzeichen, Farbeinstellungen, etc), der
dann auch die Steuerung des Druckers enthalten kann.
Aufgabe 4
Geben Sie eine binäre Codierung fester Länge für die Zustände eines Joysticks an, welcher in
4 Richtungen bewegt werden kann und zwei Tasten hat! (Die Tasten können gleichzeitig
gedrückt werden, ebenso kann der Arm gleichzeitig in eine Richtung bewegt werden)
Möglichkeiten:
à
4 Richtungen
à
4 Möglichkeiten
à
2 Tasten auch gleichzeitig à
1 + 3 Möglichkeiten ( keine, jeweils eine, beide)
+ Armbewegung
à
3 * 4 Möglichkeiten (Tasten gedrückt)
insgesamt ergibt sich daher eine Anzahl von 20 Möglichkeiten.
ln(20) 2,9957...
=
= 4,3219... aufrunden ergibt: 5 (Bits)
2 log(20) =
ln(2) 0,6931...
Es werden daher 5 Bits benötigt um alle möglichen Zustände des Joysticks zu codieren.
Seite 2
Lehrveranstaltung:
Einführung in die Informatik
26.10.2003
Übungsblatt 3
© Thomas Aichholzer
([email protected])
Aufgabe 5
Wandeln Sie nachvollziehbar (ohne Taschenrechner!) um:
- 10112 à Dezimal
- 10118 à Dezimal
- 101116 à Dezimal
- 7410 à Binär
- 57718 à Hexadezimal
- 2607 à N3 (eine Zahl zur Basis 3)
10112 à Dezimal
1 × 20 + 1 × 21 + 0 × 22 + 1 × 23 = 1 + 2 + 8 = 1110
10118 à Dezimal
1 × 80 + 1 × 81 + 0 × 82 + 1 × 83 = 1 + 8 + 512 = 52110
101116 à Dezimal
1 × 160 + 1 × 161 + 0 × 162 + 1 × 163 = 1 + 16 + 256 × 16 = 17 + 4096 = 411310
7410 à Binär
74 : 2 = 37 (0 Rest)
37 : 2 = 18 (1 Rest)
(Rest lesen)
18 : 2 = 9 (0 Rest)
9 : 2 = 4 (1 Rest)
Binär daher: 10010102 = 7410
4 : 2 = 2 (0 Rest)
2 : 2 = 1 (0 Rest)
1 : 2 = 0 (1 Rest)
57718 à Hexadezimal
57718 à Binär à Hexadezimal
58 … 1012
78 … 1112
18 … 0012
daher 57718 = (101 111 111 001)2 = (1011 1111 1001)2
10112 = 0xB
11112 = 0xF
10012 = 0x9
daher: (1011 1111 1001)2 = 0xBF9
2607 à N3 (eine Zahl zur Basis 3)
2607 à Dezimal à N3 (eine Zahl zur Basis 3)
2607 = 0 × 70 + 6 × 71 + 2 × 72 = 6 × 7 + 2 × 49 = 42 + 98 = 14010
14010 à N3 (eine Zahl zur Basis 3)
140 : 3 = 46 (2 Rest)
46 : 3 = 15 (1 Rest)
15 : 3 = 5 (0 Rest)
N3 = 120123 = 2 × 30 + 1 × 31 + 0 × 32 + 2 × 33 + 1 × 34
5 : 3 = 1 (2 Rest)
= 2 + 3 + 2 × 27 + 81 = 5 + 54 + 81 = 140 10
1 : 3 = 0 (1 Rest)
Seite 3
Lehrveranstaltung:
Einführung in die Informatik
26.10.2003
Übungsblatt 3
© Thomas Aichholzer
([email protected])
Aufgabe 6
Welche Zahlen enden im Zahlensystem 3 und im Zahlensystem 5 mit der Ziffer 1? Geben Sie
Beispiele!
Zahlen die im Zahlensystem 3 mit 1 enden haben bei einer Modulo – Division als Ergebnis 1
(1 Rest). Das gleiche gilt analog für das Zahlensystem 5.
Beispiele:
Dezimalsystem
3er System
Rest durch 3
10
1013 (= 32 + 30 = 9 + 1 = 1010)
1
2
1
0
16
1
1213 (=3 + 2 × 3 + 3 = 9 + 6 + 1 = 1610)
Dezimalsystem
16
21
5er System
315 (= 3 × 51 + 50 = 15 + 1 = 1610)
415 (= 4 × 51 + 50 = 20 + 1 = 2110)
Rest durch 5
1
1
Aufgabe 7
Führen Sie folgende Rechnungen nachvollziehbar (ohne Taschenrechner!) aus:
- 110111002 + 111110012
- 101110002 – 011001112
- 101012 * 1012
- 11111012 : 1012
110111002 + 111110012 :
110111002
+ 111110012
1110101012
1110101012 = 46910
101110002 – 011001112 :
101110002
– 011001112
10100012
10100012 = 8110
101012 * 1012
101110002 * 1012
101110002
000000002
101110002
11100110002
11100110002 = 92010
11111012 : 1012
11111012 : 1012 = 110012
010
101
001
010
101
000 Rest
110012 = 2510
Seite 4
Herunterladen