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