Teil IV Daten, Informationen, Kodierung

Werbung
Teil IV
Daten, Informationen, Kodierung
Überblick
1
Daten und Information
2
Kodierung
3
Bits und Bytes
4
Kodierung Numerischer Daten
5
Kodierung Alphanumerischer Daten
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
141/180
Daten, Informationen, Kodierung
Systematische und automatische Verarbeitung von
Informationen erfordert die Darstellung in geeigneter Form
Muss für den Rechner verarbeitbar sein
Eindeutige Darstellung nach festgelegter Struktur und
Bedeutung
Umwandlung in geeignetes Darstellungsform bezeichnen
wir hier als Kodierung von Informationen (oder Daten)
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
142/180
Informationen
Zahlreiche mögliche Definitionen je nach
Anwendungsgebiet
Sehr grundlegende (und theoretische) Definition aus der
Informationstheorie
Information als potentiellen Gehalt von übertragenen
Signalen
Keine Berücksichtigung der Anwendbarkeit in einem
konkreten Kontext
Hier deshalb allgemeine aber hinreichend präzise
Erläuterung verwendet
Definition (Informationen)
Informationen sind übertragene Muster von Energie oder
Materie, die von einem Empfänger verarbeitet und genutzt
werden können.
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
143/180
Informationen /2
Dynamischer Aspekt der Übertragung von einem System
zu einem anderen ist direkt oder indirekt Bestandteil aller
Definitionen
Information kann in einem gewissen Kontext zu einer
Veränderung führen → z.B. Entstehung von Wissen
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
144/180
Informationen und Daten
Definition (Daten)
Daten sind durch eine festgelegte Struktur (Syntax)
repräsentierte und durch Computer interpretierbare
Informationen mit einer bestimmten Bedeutung (Semantik).
Syntax: legt durch Regeln erlaubte Ausdrücke wie Werte,
Wörter oder Sätze einer Sprache fest, z.B. als Teil der
Grammatik natürlicher Sprachen - „Ich studiere in
Magdeburg“ (korrekt) vs. „studieren in Magdeburg ich“
(inkorrekter Aufbau des Satzes)
Semantik: Bedeutung der Daten, abhängig vom
Anwendungskontext, z.B. „ABBA“ als Name einer
schwedischen Popgruppe (Kontext: Musik), Titel
koptischer Geistlicher (Kontext: Äthiopien) oder als
hexadezimale Repräsentation der Zahl 43962 (Kontext:
Informatik)
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
145/180
Ausflug in die Linguistik
Verständnis des Satzes:
Draußen ist es kalt.
Linguistische Ebene
Ebene des Verständnis
Zeichen eines Alphabets
Das ist eine Sequenz von
Zeichen eines Alphabets.
+ Syntax
Daten
Die Zeichen bilden einen Satz
der deutschen Sprache.
+ Semantik
Informationen
Die Temperatur vor der Tür ist
relativ gering.
+ Pragmatik
Anwendungsbereites
Wissen
Eike Schallehn, FIN/ITI
Ich sollte mir eine Jacke
anziehen wenn ich rausgehe.
Grundlagen der Informatik für Ingenieure
146/180
Kodierung
Ein Alphabet A ist ein geordneter Zeichenvorrat
Ein Wort w ∈ A∗ ist ein aus der Aneinanderreihung von Zeichen
eines Alphabets entstandene Zeichenfolge
Eine Sprache L ⊆ A∗ ist eine (Teil-)menge der möglichen Wörter
über einem Alphabet
Definition (Kodierung)
Kodierung ist die Abbildung f : A∗ → B∗ von Wörtern eines
Alphabets A in Worte eines anderen (oder desselben) Alphabets B
zum Zweck der Übertragung oder Vearbeitung.
Umwandlungsvorschrift f (Code oder Kode) kann über
Funktionen in Form von Formeln, Abbildungstabellen,
Algorithmen, etc. definiert sein
Ist f eine eineindeutige Funktion, d.h. existiert eine
Umkehrfunktion f −1 mit f −1 (f (w)) = w, so bezeichnet man den
Eike Schallehn, FIN/ITICode als entzifferbar
Grundlagen der Informatik für Ingenieure
147/180
Beispiel für Codes
Morsecode
Eingabealphabet: A = {A, B, . . . , Z, 0, 1, . . . , 9, . . . }
Ausgabealphabet: B = {−, ·}
Abbildungsvorschrift: Morsecode-Tabelle
Beispiel: f (SOS) = · · · − − − · · ·
Entzifferbarer Code
Besonderheit: Abbildung von Wörter aus nur einem
Zeichen aus A in unterschiedlich lange Wörter aus B
Darstellung von natürlichen Zahlen im Unärsystem
Eingabealphabet: A = {0, 1, . . . , 9}
Ausgabealphabet: B = {|} (oder B = {|,||||})
Abbildungsvorschrift: Algorithmus zum Abzählen des
Wertes der dezimalen Zahl
Beispiel: f (13) = |||| |||| |||
Entzifferbarer Code
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
148/180
Binärkodierung
Besondere Bedeutung der Binärkodierung in der Informatik
Abbildung auf Alphabet mit zwei Zeichen, in der Regel B = {0, 1}
Entspricht den zwei möglichen Schaltzuständen in der Elektronik:
Spannung liegt an oder nicht
Erlaubt Abbildung beliebiger Informationen auf eine elektronisch
speicher- und verarbeitbare Darstellung
Basiert auf Darstellung von natürlichen Zahlen im Dualsystem
nach Leibniz
Darstellung jeder beliebigen natürlichen Zahl mit Ziffern 0 und 1
Abbildungsregeln spezielle numerische Daten: negative und
Gleitkommzahlen
Abbildungstabellen für alphanumerische Daten: Zeichen und
Zeichenketten beliebiger Alphabete
Direkte Abbildung einer zweiwertigen Logik: 0 = FALSCH,
1 = WAHR
Nutzung dieser Basisansätze für weitere Datentypen, z.B.
Bilddaten durch Position/Sequenz von Bildpunkten mit
bestimmten Farbwerten
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
149/180
Dezimal- und Dualzahlen
11102
= 14 10
0
0x2
+ 1 x 21
+ 1 x 22
+ 1 x 23
0
4 x 10
+ 1 x 10 1
Allgemeine Herleitung des Wertes N einer natürlichen Zahl
bei Darstellung mit n Ziffern Z zur Basis B
i
N = Σn−1
i=0 Zi ∗ B
Im Dezimalsystem: B = 10, Zi ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Im Dualsystem: B = 2, Zi ∈ {0, 1}
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
150/180
Dezimal- und Dualzahlen /2
02 = 010
12 = 110
102 = 210
112 = 310
1002 = 410
1012 = 510
1102 = 610
1112 = 710
10002 = 810
...
111111112 = 25510
1000000002 = 25610
...
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
151/180
Bits und Bytes
Definition (Bit)
Ein Bit (binary digit, Binärziffer) ist in der Informatik die kleinste
informationstragende Einheit, welche die Zustände 0 oder 1
darstellen kann.
Definition (Byte)
Ein Byte ist eine zusammengehörige Sequenz von 8 Bit
(Oktett), welche durch die Kombination der Einzelzustände der
Bits 256 verschiedene Zustände Abbilden kann (Dualzahlwerte
0 bis 255).
Byte als Hilfsmittel zur Strukturierung von Daten
Adressierbare Einheit in Speicher (auf allen Ebenen der
Speicherhierarchie)
Datenwortbreite von Prozessoren und Breite von
Bussystemen in Byte (8 Bit) oder Vielfaches davon (16 Bit,
32 Bit, 64 Bit, ...)
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
152/180
Aufbau von Bytes /1
110101012
Bits
1 1 0 1 0 1 0 1
Bitposition
7
6
5
4
3
2
1
0
= 1 ∗ 27 + 1 ∗ 26 + 0 ∗ 25 + 1 ∗ 24 + 0 ∗ 23 + 1 ∗ 22 + 0 ∗ 21 + 1 ∗
= 128 + 64 + 16 + 4 + 1
= 21310
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
153/180
Aufbau von Bytes /2
Mit n Bits lassen sich 2n verschiedenen Zeichen/Zustände
kodieren
Größe von n = 8 Bit bei der Entwicklung erster Rechner
relativ willkürlich gewählt, aber
256 Zustände ausreichend für Abbildung vieler gängiger
Zeichenvorräte, zum Beispiel gängigste Zeichen inklusive
Alphabet (Klein- und Großbuchstaben), Dezimalziffern und
einige Sonderzeichen durch ASCII Code (eigentlich nur 7
Bit)
Verwendung einer Zweierpotenz 8 = 23 günstig für
Addressierung der einzelnen Bits
Auch komplexere Daten (Datentypen, Adressen,
Busbreiten) basieren deshalb meist auf Zweierpotenzen:
16 = 24 , 32 = 25 , 64 = 26 , ...
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
154/180
Byte als Maßeinheit
Auch Verwendung als Maßeinheit für Datenmengen
Faktoren für Größenordnungen wieder an Zweierpotenzen
mit Faktor 210 = 1024 orientiert (im Gegennsatz zu meisten
gebräuchlichen Einheiten mit Dezimalfaktorensystem 10,
100, 1000, etc.)
210
220
230
240
...
Eike Schallehn, FIN/ITI
Byte = 1 Kilobyte (KByte) = 1024 Byte
Byte = 1 Megabyte (MByte) = 1024 KByte = 1048576 Byte
Byte = 1 Gigabyte (GByte) = 1024 MByte = ...
Byte = 1 Terabyte (TByte) = ...
Grundlagen der Informatik für Ingenieure
155/180
Hexadezimalsystem /1
Zahlensystem zur Basis B = 16 = 24
Da 16 Ziffernsymbole benötigt, werden zusätzlich die
ersten Buchstaben des Alphabets verwendet:
Zi ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Wertigkeit zusätzlicher Ziffern ist entsprechend
A16 = 1010
B16 = 1110
...
F16 = 1510
Beispiel:
A3F16 = 10 ∗ 162 + 3 ∗ 161 + 15 ∗ 160
= 2560 + 48 + 15
= 262310
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
156/180
Hexadezimalsystem /2
1 1 0 1 0 1 0 1
=D5
}
}
1310 =D 16
16
510 =5 16
Verwendung in der Informatik gebräuchlich, da
der Zustand eines Bytes immer genau durch eine
zweistellige Hexadezimalzahl zwischen
000000002 = 010 = 0016 und 111111112 = 25510 = FF16
dargestellt werden kann (ebenso kann jede zweistellige
Hexadezimalzahl durch ein Byte dargestellt werden)
die Umrechnung eines Byte in eine Hexadezimalzahl sehr
einfach ist, indem jedes Halb-Byte (4 Bit) mit 24 = 16
möglichen Zuständen in genau eine Ziffer 0 . . . F
umgewandelt wird
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
157/180
Operationen auf Bits und Bytes
Basieren auf logischen Grundoperationen der Aussagenlogik
Ein (unäre Operation) oder zwei (binäre Operation) Operanden
repräsentieren Wahrheitsgehalt einer Aussage: TRUE (T, wahr)
oder FALSE (F, falsch)
Wichtige Operationen (weitere durch Kombination möglich)
AND (und, Konjunktion): beide Aussagen müssen wahr sein
OR (oder, Disjunktion): mindestens eine der Aussagen wahr
NOT (nicht, unäre Negation): das Gegenteil der Aussage
XOR (Exklusiv-Oder): nur genau eine der beiden Aussagen
wahr
Können in Wahrheitstabelle dargestellt werden
x y x AND y x OR y NOT x x XOR y
F F
F
F
T
F
F T
F
T
T
T
T F
F
T
F
T
T T
T
T
F
F
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
...
158/180
Logikschaltungen
Logische Grundfunktionen umgesetzt durch
transistorbasierte Logikschaltungen (auch Gatter)
Schaltzustände 0 und 1 entsprechen Wahrheitswerten F
und T
Eike Schallehn, FIN/ITI
AND
&
NOT
1
OR
³1
NAND
&
XOR
=1
NOR
³1
Grundlagen der Informatik für Ingenieure
159/180
Umsetzung von Operationen: Beispiel Addition
Addition zweier Bitwerte x und y lässt sich als Kombination
zweier logischer Operationen darstellen
x XOR y als einstelliges Ergebnis
x AND y als Übertrag zur nächsten Stelle
x
0
0
1
1
Eike Schallehn, FIN/ITI
y
0
1
0
1
x+y
00
01
01
10
x AND y
0
0
0
1
x XOR y
0
1
1
0
Grundlagen der Informatik für Ingenieure
160/180
Halbaddierer
Zusammenfassung in einer Schaltung
X
Y
=1
S
S
X
Y
&
HA
Ü
Ü
Umsetzung eines Addierers für komplette Bytes
Stellenweise Addition für alle Bits xi und yi
Erfordert Berücksichtigung des Übertrags ui−1 der
vorhergehenden Bit-Addition
→ Volladdierer
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
161/180
Volladdierer /1
ui−1
0
0
0
0
1
1
1
1
xi
0
0
1
1
0
0
1
1
yi
0
1
0
1
0
1
0
1
u+x+y
00
01
01
10
01
10
10
11
Umsetzung zum Beispiel durch Kombination von
Halbaddierern
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
162/180
Volladdierer /2
Xi
Yi
Ü’
HA
Ü’’
S’
³1
Üi
HA
Ü i-1
Si
Byte-Addition durch Kaskadierung von Volladdieren für
jedes Bit
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
163/180
Byte-Addierer
s0
s1
VA
0 x 0 y0
s2
s7
Überlauf
(Carry Bit)
VA
VA
VA
x 1 y1
x 2 y2
x 7 y7
Umsetzung weiterer Operationen
Subtraktion durch Addition des Zweierkomplements
Multiplikation und Division durch verschiedene Ansätze
möglich, zum Beispiel Kombination aus Addierern und
bit-weisem Verschieben
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
164/180
Kodierung Numerischer Daten
Bisher Interpretation von Byte-Werten nur als natürliche
Zahlen 0 bis 255
Probleme für Darstellung weiterer numerischer
Datenbereiche
Abbildung von größeren Wertebereichen durch
Zusammenfassung von mehreren Byte (16-Bit, 32-Bit,
64-Bit)
Darstellung vorzeichenbehafteter (positiver und negativer)
ganzer Zahlen durch das Zweierkomplement
Darstellung von Gleitkommazahlen mit einem
Nachkommateil (rationale und reelle Zahlen)
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
165/180
Kodierung Ganzer Zahlen
Einerkomplement (EK) für Darstellung negativer Zahlen:
Bildungsvorschrift für Negation einer Zahl in Bits 0 . . . n − 1:
negiere alle Bits (0 → 1, 1 → 0)
Bei n Bits 0 . . . n − 1 entspricht höchstrangiges Bit n − 1
Vorzeichen (0 positiv, 1 negativ)
Wert der Zahl ergibt sich als
(
i
zn−1 = 0
Σn−2
i=0 zi ∗ 2
ZEK =
n−2
i
Σi=0 (1 − zi ) ∗ 2 zn−1 = 1
Nachteile:
zwei Nullen mit unterschiedlichen Vorzeichen: 00000000EK
als +0 und 11111111EK als −0
Ausführung von Rechenoperationen erfordert
Spezialbehandlung bei Verwendung von Vorzeichen
Wird so in der Regel nicht verwendet, wegen Vorteilen des
Zweierkomplement →
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
166/180
Zweierkomplement
Zweierkomplement als leichter verwendbare Alternative
Bildungsvorschrift: negiere alle Stellen und addiere 1
(einfache Variante: negiere alle Stellen und ersetze von
rechts 1 durch 0 und erste 0 durch 1)
Betrag der Zahl ergibt sich als
(
i
Σn−1
i=0 (zi ) ∗ 2
ZZK =
i
2n − Σn−1
i=0 (zi ) ∗ 2
zn−1 = 0
zn−1 = 1
Vorteile:
Nur eine Darstellung für die Null: 00000000ZK
Direkte Umsetzung der Rechenoperationen möglich →
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
167/180
Zweierkomplement für 8 Bit
01111111ZK
= 12710
01111110ZK
= 12610
...
00000011ZK
= 310
00000010ZK
= 210
00000001ZK
= 110
00000000ZK
= 010
11111111ZK
= −110
11111110ZK
= −210
11111101ZK
= −310
...
Eike Schallehn, FIN/ITI
10000001ZK
= −12710
10000000ZK
= −12810
Grundlagen der Informatik für Ingenieure
168/180
Addition mit Zweierkomplement
Erlaubt direkte Addition positiver und negativer Zahlen
(ggf. mit Über- oder Unterlaufbehandlung)
Erlaubt Umsetzung der Subtraktion als Addition des
Zweierkomplement
Dezimalsystem
Dualzahlen mit ZK
3
-7
-4
00000011
+ 11111001
11111100
Weitere arithmetische Operationen ebenfalls einfach
umsetzbar
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
169/180
Ganzahlige C++ Datentypen
Wertebereich unterschiedlich für verschiedene
Plattformen, hier Win32
Nachlesbar in limits.h
Datentyp
char
signed char
short
unsigned short
int
unsigned int
long
unsigned long
Eike Schallehn, FIN/ITI
Speicherplatz
1 Byte
1 Byte
2 Byte
2 Byte
4 Byte
4 Byte
8 Byte
8 Byte
Wertebereich
0
-128
-32768
0
-2147483648
0
Grundlagen der Informatik für Ingenieure
...
...
...
...
...
...
...
...
255
127
32767
65535
2147483647
FFFFFFFF16
170/180
Kodierung von Gleitkommzahlen
Zahlen mit einem Nachkommaanteil beinhalten
Rationale Zahlen, die durch einen Bruch ganzer Zahlen
dargestellt werden können, z.B. 12 , − 73
Reelle Zahlen, die zusätzlich nicht durch
√ Bruch
darstellbare Zahlen beinhalten, z.B. π, 2, etc.
Grenzen der Darstellbarkeit
Wie bei ganzen Zahlen obere und untere Grenzen durch
feste Anzahl von Bytes für Darstellung
Zusätzlich Präzision: nur begrenzte Anzahl an
Nachkommastellen ist verlustlos abbildbar → im Rechner
dargestellte Gleitkommazahlen sind oft nur eine
angenäherte Darstellung der Realweltzahl
Beispiel: 0.110 = 0.00011001100110011 . . .2 kann mit fester
Stellenzahl für Nachkommaanteil nicht abgebildet werden
Abbildung erfolgt auf Basis normierter halblogarithmischer
Darstellung im Binärsystem
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
171/180
Halblogarithmische Darstellung von Zahlen
Zusammengesetzt aus Vorzeichen v ∈ {+, −}, Mantisse m,
Basis b und Exponent e
Z = (+/−)m ∗ be
wobei
Exponent positive oder negative ganze Zahl
Mantisse positive reelle Zahl
Basis positive ganze Zahl
Halblogarithmische Darstellung von Dezimalzahlen mit
b = 10
Beispiel −458.3 = −4.583 ∗ 102
Verwendet Als Standardformat für Gleitkommazahlen in
Programmiersprachen:
-458.3 → -4.583E2
0.0072 → 7.2E-3
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
172/180
Normierte Halblogarithmische Darstellung
Normierte halblogarithmische Darstellung von Binärzahlen
mit b = 2
Normierung durch Umwandlung der Darstellung, so dass
12 ≤ m < 22 (immer: vor dem Komma eine 1)
Möglich durch verschieben der Kommastelle und
Anpassung des Exponenten
12.510
= 1100.12
= 110.012 ∗ 21
= 11.0012 ∗ 22
= 1.10012 ∗ 23
Abbildung von Gleitkommazahlen erfolgt auf Basis
normierter halblogarithmischer Darstellung im Binärsystem
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
173/180
Kodierung von Gleitkommazahlen /1
Basiert auf normierter halblogarithmischer Darstellung zur
Basis 2
Bestimmte Anzahl von Bits n (z.B. 32, 64, 80, 128, ...) wird
aufgeteilt, für Darstellung der einzelnen Komponenten
1 Bit für Vorzeichen: 0 - positive Zahl, 1 - negative Zahl
m Bits für Mantisse: Nachkommastellen der normierten
Darstellung, z.B. bei 1.10012 ∗ 23 ergeben sich die
Binärziffern 11001
1 vor dem Komma wird für Speicherung auch weggelassen
(hidden bit), d.h. die gespeicherte Mantisse ist 1001
...
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
174/180
Kodierung von Gleitkommazahlen /2
...
c Bits für Charakteristik: Darstellung des Exponenten als
immer positive Zahl durch Addition ch = e + k eines
konstanten Wertes k in der Mitte des möglichen
Wertebereiches (englisch Bias)
z.B. bei 8 Bit für Exponenten, k = 011111112 = 12710 für
Exponenten von -128 bis 127, für Beispiel
12710 + 310 = 011111112 + 112 = 100000102
Zweierkomplement wäre auch möglich, so aber praktischer
für direkte Größenvergleiche
Gesamtzahl der Bits setzt sich aus Vorzeichen, Mantisse
und Charakteristik zusammen: n = 1 + m + c
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
175/180
Gleitkommazahlen in C++
31 30
23 22
V Charakteristik
0
Mantisse
In C++ laut Standard zwei grundlegende Typen für
Gleitkommazahlen
Datentyp
float
double
Speicherplatz
32 Bit
64 Bit
Charakteristik
8
11
Mantisse
23
52
Außerdem long double mit 80 Bit
Problem mit Präzision: erfordert Rundungsregeln bei der
Ausführung von Operationen und ggf. Angabe der
„Korrektheit“ des Ergebnisses
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
176/180
Kodierung Alphanumerischer Daten
Problem: Kodierung unserer Schriftsprache bestehend aus
Buchstaben, Ziffern, Sonderzeichen, Symbolen, etc.
Lösung: Abbildung des gesamten Zeichenvorrats über
festgelegte, eineindeutige (→ entzifferbare)
Kodierungstabellen auf Wertebereich einer bestimmten
Größe, z.B.
ASCII (American Standard Code for Information
Interchange) mit 8 Bit (256 verschiedene Zeichen)
verbreitet für einfache Textdateien usw.
Unicode mit 16 Bit (65536 verschiedene Zeichen) codiert
viele Alphabete, z.B. für Internationalisierung (kyrillische,
chinesische, etc. Alphabete)
Bildung von Zeichenketten durch einfache Konkatenation
und spezielle Werte zur Markierung des Endes einer
Zeichenkette
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
177/180
Überblick ASCII
Ursprünglich 7 Bit ausreichend → 128 Zeichen, z.B.
Code
48
49
50
...
57
Zeichen
„0“
„1“
„2“
...
„9“
Code
65
66
67
...
90
Zeichen
„A“
„B“
„C“
...
„Z“
Code
97
98
99
...
122
Zeichen
„a“
„b“
„c“
...
„z“
Steuerzeichen: Codes 0 - 31
Sonderzeichen, z.B. ! ? ( + . > = etc.: sonstige Codes
32-47, 58-64, ...
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
178/180
Zeichen und Zeichenketten in C++ /1
Zeichen werden in C++ durch Datentyp char abgebildet
Mögliche Zustände 0-255 werden für erweiterten ASCII
Code benutzt (Kodierung →)
Wird entsprechend Programmkontext als Zeichen oder
Wert interpretiert
Zeichenketten fester Länge in C durch Feld (Array →)
mit bestimmter Größe, z.B.
char login[9];
für Zeichnkette der Länge 8 und 1 Byte Ende-Markierung
Zeichenketten beliebiger Länge in C durch Zeiger
(Pointer →) auf Sequenz von Zeichen im Speicher mit
Endemarkierung
char* message = ”Hello, World!”;
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
179/180
Zeichen und Zeichenketten in C++ /2
Zeichenketten beliebiger Länge in C++ durch spezielle
Klasse string (in der Vorlesung und Übung verwendet)
#include <string>
using namespace std;
int main()
{
string m1 =”Hello ”;
string m2 =”World!”;
string message = m1 + m2;
...
}
Klasse bietet zusätzliche Funktionalität für Operatoren und
Funktionen auf Zeichenketten an
Eike Schallehn, FIN/ITI
Grundlagen der Informatik für Ingenieure
180/180
Herunterladen