Thema 1 -- Fortsetzung Computersystem, Informationsdarstellung
Codierung! Bei der Codierung erfolgt eine eindeutige Zuordnung der Zeichen eines Zeichenvorrates (Urmenge, Quellalphabet) zu denjenigen eines anderen Zeichenvorrates (Bildmenge, Zielalphabet).! Der umgekehrte Vorgang heißt Decodierung.! Ist das Zielalphabet einer Codierung ein binäres Alphabet, so spricht man von einem Binärcode.! Das Alphabet besteht nur aus den Binärziffern (Binary digit = Bit) 0 und 1.! Die heutigen Rechnersystem arbeiten bekannterweise alle binär!
Bit BInary DigiT 1)! Bezeichnung für eine Binärziffer.! Maßeinheit für die Datenmenge. Dabei ist 1 Bit die kleinste darstellbare Datenmenge, die beispielsweise durch eine Binärziffer dargestellt werden kann. Größere Datenmengen können nur ganzzahlige Vielfache von 1 Bit sein.! Maßeinheit für den Informationsgehalt (siehe auch Shannon, Nit, Hartley). Dabei ist 1 Bit der Informationsgehalt, der in einer Auswahl aus zwei gleich wahrscheinlichen Möglichkeiten enthalten ist. Als Informationsgehalt können auch reellwertige Vielfache von 1 Bit auftreten. 1) aus Wikipedia
Bits und Bytes! 8 Bit werden üblicherweise zu einem Byte zusammengefasst. 7 6 5 4 3 2 1 0 0 1 0 1 1 0 1 1 MSB Most Significant Bit Halbbyte Halbbyte LSB! 1024 Byte = 1 KiB, 1024 KiB = 1 MiB, 1024 MiB = 1 GiB, 1024 GiB = 1 TiB Least Significant Bit
Bits und Bytes am Microcontroller
Bits und Byte am klassischen Druckeranschluss Hier ist das Byte
Hexadezimaldarstellung! Wird zur Vereinfachung von Binärzahlen verwendet.! je 4 Bit werden zu einer Hexadezimalziffer 0..F)! 01011011 2 -> 0101-1011 -> 5B 16! In vielen Programmiersprachen direkt benutzbar!! char a = 0x5b; // C! byte a = 0x5b; // Java
Hexadezimalziffern 0000 0 1000 8 0001 1 1001 9 0010 2 1010 A 0011 3 1011 B 0100 4 1100 C 0101 5 1101 D 0110 6 1110 E 0111 7 1111 F
Andere Sicht: Stellenwertsysteme und dezimaler Wert! im tägl. Leben: Dezimal 423! entspricht 4*10 2 + 2*10 1 + 3*10 0! im Computer: Binär 110100111! entspricht 1*2 8 + 1*2 7 + 1*2 5 + 1*2 2 + 1*2 1 + 1*2 0! zur Vereinfachung Hexadezimal 1A7! entspricht 1*16 2 + 10*16 1 + 7*16 0
Beispiele für Codes Binäre Codes numerische Codes alphanumerische Codes Festkomma Gleitkomma ASCII EBCDI dual tertradisch
Numerische Codes! Die Bezeichnung Computer (Rechner) rührt historisch daher, das diese Geräte ursprünglich aufwendige mathematische Berechnungen, algorithmisch gesteuert, durchführen sollten. Die Verarbeitung anderer Informationen kam erst später hinzu!! Man benötigt deshalb erst einmal Codes, um mit Zahlen arbeiten zu können.! Numerische Codes gestatten jeweils nur die Abbildung eines Teilbereiches!! eines mathematischen Zahlenbereichs.! Festkomma: Teilbereich natürlicher bzw. ganzer Zahlen! in Programmiersprachen oft integer genannt! Gleitkomma: Teilbereich der rationalen Zahlen! in Programmiersprachen oft float genannt
das Innenleben des µc
Beispiele für Codes I Binäre Codes numerische Codes alphanumerische Codes Festkomma Gleitkomma ASCII EBCDI dual tertradisch
Numerische Codes (Festkomma)! Dualcode! Zahl 1) wird durch ein Wort bestimmter Bitanzahl dual dargestellt (bei positiven Zahlen der Zahlenwert bezogen auf das Stellenwertsystem).! Code, in dem im Computer hauptsächlich Festkommadaten (Teilbereich der ganzen Zahlen) arithmetisch verarbeitet werden.! Umcodierung (von/in alphanumerischen Code) bei Ein- und Ausgabe relativ schwierig.! Tetradische Codes! Jede Ziffer einer Zahl wird unabhängig codiert! 4 Bit (= Tetrade) je Ziffer mindestes notwendig)! Umcodierung einfacher, Arithmetik komplizierter 1) hier jeweils Dezimalzahl gemeint
Beispiele für Codes III Binäre Codes numerische Codes alphanumerische Codes Festkomma Gleitkomma ASCII EBCDI dual tetradisch
Festkommadarstellungen (dual)! heute übliche Festkommalängen (Java, C)! 1 Byte (8 Bit)! byte, char! 2 Byte (16 Bit, Halbwort)! short, short int! 4 Byte (32 Bit, Wort)! int, long int! 8 Byte (64 Bit, Doppelwort)! long, long long int! Die Verarbeitungsbreite einer CPU (8 Bit..64 Bit) und damit die Breite der allgemeinen Register bezieht sich auf Festkommadarstellungen.
Bsp. 1 Byte 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 1 0 1 1 0 1 1 entspricht der Zahl 91 5 B
negative Zahlen- das Zweierkomplement 0 1 0 1 1 0 1 1 = 91 1 0 1 0 0 1 0 0 invertiert + 1 +1 1 0 1 0 0 1 0 1 = - 91 Darstellung
Zweierkomplement konkret! n-bittige Festkommazahl -z Darstellung = 2 n - z z.b. 8 Bit Darstellung : -91 Darstellung = 2 8-91 = 256-91 = 165 (Dezimale Darstellung der Bits) oder -z Darstellung + z = 2 n
Aufteilung in positive und negative Zahlen bei der Zweierkomplement (8 Bit und 3 Bit Beispiel) 0 1 2 3... 91 126 127 128 129 165 254 255 0 1 2 3... 91 126 127-128 -127-91 -2-1 7 111 0 000 1 001-1 111 0 000 1 001 6 110 2 010-2 110 2 010 5 101 4 100 3 011-3 101-4 100 3 011
Speicherung von Mehrbytegrößen im byteadressierten Speicher 2 15 2 0 2 15 2 0 -> Speicherung auf Adresse 2 -> Speicherung auf Adresse 2 Big Endian z.b. UltraSPARC Adresse 0 Adresse 1 Adresse 2 Adresse 3 Adresse 4 Adresse 0 Adresse 1 Adresse 2 Adresse 3 Adresse 4 Little Endian z.b x86-prozessoren
...Swift! Little-Endian! Nach J.Swift 1), jemand der Eier mit dem dünnen Ende zuerst ißt.! Big-Endian! Nach J.Swift, jemand der Eier mit dem dicken Ende zuerst ißt. 1) Swift, Jonathan. Gulliver's Travels.
Beispiele für Codes III Binäre Codes numerische Codes alphanumerische Codes Festkomma Gleitkomma ASCII EBCDI dual tetradisch
Motivation! Mit Festkomma darstellbar! Teilbereich der natürlichen oder ganzen Zahlen! 4 Byte: 0.. 4294967295 oder 2147483648.. 2147483647! Oder auch ein gedachtes Komma an einer festen Stelle! Bsp. EURO 137,50 EUR als 13750 (zwei gedachte Kommastellen)! Was ist Gleitkomma?! Bsp. Physik, Astronomie! Plancksches Wirkungsquantum: 6,626 068 96 (33) 10 34 Js! 1 Parsec : 30,856776 10 15 m Mantisse Exponent
Gleitkommadarstellung im Computer! analog der Darstellung im Dezimalsystem:! dual, getrennt in Mantisse und Exponent! verbreitet :durch IEEE 754 standardisiert! short real 32 Bit single! long real 64 bit double! temporary real 80 bit extended! von Gleitkommakoprozessoren bzw. Gleitkommarechenwerken verwendet
Beispiel: short real V 8 Bit Exponent 23 Bit Mantisse 31 30 23 22 0! dargestellt wird die Zahl 1.Mantissenbits * 2Exponent -127! die führende 1 wird bei short- und long real nicht! mit gespeichert (hidden bit)! V: Vorzeichen der Zahl! Exponent : 1..254 entsprechend 2-126..2 127! 0 und 255 sind reserviert!! Mantissenbits: 2-1, 2-2, 2-3,... 2-23
...Gleitkommadarstellungen! 428CE9FC entspricht der Zahl 70.457 (man möge das nachprüfen...)! Zahlenbereiche der IEEE-Formate! 32bit 1.18*10-38 < x < 3.40*10 +38 (8/23)! 64bit 2.23*10-308 < x < 1.79*10 +308 (11/52)! 80bit 3.37*10-4932 < x < 1.18*10 +4932 (15/64) (ohne Hidden-Bit)! Spezielle Zahlen! 0: Exponent = 000..., Mantisse = 000... -> zwei Nullen! denormalisiert: Exponent = 000..., Mantisse!= 000...! Unendlich: Exponent = 111..., Mantisse = 000...! Not a Number: Exponent = 111..., Mantisse!= 000...
Beispiele für Codes Binäre Codes numerische Codes alphanumerische Codes Festkomma Gleitkomma ASCII EBCDI dual tetradisch
Alphanumerische Codes! Willkürliche Zuordnung von Buchstaben, Zahlen, Sonderzeichen zu jeweils einer möglichen Kombination aus 7, 8 oder 16 Bits! zwei wichtige Formate:! ASCII-Code (7 bzw. auch 8 Bits) (American Standard Code for Information Interchange)! IBM-Welt (Mainframe) EBCDI-Code (8 Bits) (Extended Binary Coded Decimal Interchange Code)! darüber hinaus! Unicode (16 Bits)
ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL DLE SP 0 @ P p 1 SOH DC1! 1 A Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAK % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HAT EM ) 9 I Y i y A LF SUB * : J Z j z B VT ESC + ; K [ k { C FF FS, < L \ l D CR GS - = M ] m } E SO RS. > N ^ n ~ F SI US /? O _ o Erweiterter ASCII-Zeichensatz - Umlaute - Blockgrafik
EBCDI