Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte - Sebastian Ebers Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/users/ebers
Zahlendarstellung 201010? 16 2010 / 16 = 125,625 125 Rest 10 125 / 16 = 7,8125 7 Rest 13 7 / 16 = 0,4375 0 Rest 7 2010 10 7DA 16 7DA16? 10 7 * 16² + 13 * 16¹ + 10 * 16 ⁰ = 1792 + 208 + 10 = 2010 7DA 16 2010 10
Zahlendarstellung 201010? 16 2010 / 16 = 125,625 125 Rest 10 125 / 16 = 7,8125 7 Rest 13 7 / 16 = 0,4375 0 Rest 7 2010 10 7DA 16 7DA16? 10 7 * 16² + 13 * 16¹ + 10 * 16 ⁰ = 1792 + 208 + 10 = 2010 7DA 16 2010 10
Zahlendarstellung 20110? 10 201 / 10 = 20,1 20 Rest 1 20 / 10 = 2,0 2 Rest 0 2 / 10 = 0,2 0 Rest 2 201 10 201 10 20110? 10 2 * 10² + 0 * 10¹ + 1 * 10 ⁰ = 200 + 0 + 1 = 201 201 10 201 10
Zahlendarstellung Umrechnung von beliebigen Quell- und Zielsystemen Möglichkeit 1: Zunächst Überführung vom Quellsystem ins Dezimalsystem (Zwischensystem) Überführung vom Zwischensystem ins Zielsystem Möglichkeit 2: Haben beide Systeme Zweierpotenzen als Basen, kann die Umrechnung durch Umgruppieren vereinfacht werden
Beispiel ohne Umgruppieren 7DA 16? 2 Schritt 1: Umrechnung ins 10er-System 7 * 16 2 + 13 * 16 1 + 10 * 16 ⁰ = 1792 + 208 + 10 = 2010 7DA 16 2010 10 Schritt 2: Umrechnung ins Zielsystem (hier 2er System) 2010 / 2 = 1005 Rest 0 1005 / 2 = 502 Rest 1 502 / 2 = 251 Rest 0 2010 10 11111011010 2
Beispiel ohne Umgruppieren 7DA 16? 2 Schritt 1: Umrechnung ins 10er-System 7 * 16 2 + 13 * 16 1 + 10 * 16 ⁰ = 1792 + 208 + 10 = 2010 7DA 16 2010 10 Schritt 2: Umrechnung ins Zielsystem (hier 2er System) 2010 / 2 = 1005 Rest 0 1005 / 2 = 502 Rest 1 502 / 2 = 251 Rest 0 2010 10 11111011010 2
Beispiel mit Umgruppieren 7DA 16? 2 Umgruppieren möglich, da Binärsystem: 2 = 2¹ Hexadezimalsystem: 16 = 2⁴ Eine Stelle im Hexadezimalsystem entspricht vier Stelle im Binärsystem 7 16 = 7 10 = 0111 2 D 16 = 13 10 = 1101 2 A 16 = 10 10 = 1010 2 7 D A 16 0111 1101 1010 2
Beispiel mit Umgruppieren 7DA 16? 2 Umgruppieren möglich, da Binärsystem: 2 = 2¹ Hexadezimalsystem: 16 = 2⁴ Eine Stelle im Hexadezimalsystem entspricht vier Stelle im Binärsystem 7 16 = 7 10 = 0111 2 D 16 = 13 10 = 1101 2 A 16 = 10 10 = 1010 2 7 D A 16 0111 1101 1010 2
Grundrechenarten Berechnungen, die die Grundrechenarten betreffen, können (falls keine expliziten Vorgaben gemacht werden) direkt im jeweiligen Zahlensystem durchgeführt werden oder nach Überführung in einem Zwischensystem durchgeführt werden. Anschließend muss das Ergebnis wieder in das eigentliche Zahlensystem überführt werden.
Grundrechenarten - Beispiel C9 16 CF 16? 16 Berechnung direkt im Hexadezimalsystem CF - C9 Ergebnis ist -6 16 6 Berechnung im Zwischensystem (hier: Dezimalsystem) Überführung ins Dezimalsystem: C9 16 12 * 16 + 9 = 201 10 CF 16 12 * 16 + 15 = 207 10 Konkrete Berechnung im Dezimalsystem: 201 10 207 10 = -6 10 Überführung ins Hexadezimalsystem -6 10-6 16
Grundrechenarten - Beispiel C9 16 CF 16? 16 Berechnung direkt im Hexadezimalsystem CF - C9 Ergebnis ist -6 16 6 Berechnung im Zwischensystem (hier: Dezimalsystem) Überführung ins Dezimalsystem: C9 16 12 * 16 + 9 = 201 10 CF 16 12 * 16 + 15 = 207 10 Konkrete Berechnung im Dezimalsystem: 201 10 207 10 = -6 10 Überführung ins Hexadezimalsystem -6 10-6 16
Darstellung negativer Zahlen Vorzeichen-Betrag-Darstellung Negative Zahl entspricht der positiven Zahl mit führendem Minus (-) -6 10-0110 2 Einerkomplement-Darstellung Negative Zahl entspricht der bitweise invertierten positiven Zahl 6 10 0110 2-6 10 1001 2 Zweierkomplement-Darstellung Negative Zahl: Invertiere die entsprechende positive Zahl bitweise und addiere anschließend 1 6 10 0110 2-6 10 1010 2
Rechnen mit negativen Zahlen Vorzeichen-Betrag-Darstellung Extra Arithmetik für Subtraktion benötigt Einerkomplement-Darstellung Gleiche Arithmetik für Addition und Subtraktion Potentieller Übertrag muss auf das Ergebnis addiert werden Zweierkomplement-Darstellung Gleiche Arithmetik für Addition und Subtraktion Potentieller Übertrag kann ignoriert werden
32-Bit-Fließkommazahlen nach IEEE 754 Alle gängigen Rechner verwenden die Darstellung nach IEEE Standard 754 Der Exponent zeigt an, um wie viele Stellen das Komma verschoben werden muss. Exponent ist in Vorzeichen-Betrag-Darstellung kodiert und darf daher nicht negativ werden. Um dennoch Zahlen kleiner 0 darstellen zu können, errechnet sich der effektive Exponent e effektiv wie folgt: e effektiv = e-127 10
32-Bit-Fließkommazahlen nach IEEE 754 Binärer Wert einer Fließkommazahl für e 0 und M 0 g = (-1) v * (1,M) * 2 e-127 Problem: Darstellung der 0 (1,0 x immer ungleich 0) Daher Sonderfälle: e = 0 und M 0 denomalisiert (0,M) e = 0 und M = 0 0 e = 256 und M 0 NaN (Not a Number) e = 256 und M = 0 Unendlich (Infinity, je nach Vorzeichen +/-)
32-Bit-Fließkommazahlen nach IEEE 754 Binärer Wert einer Fließkommazahl für e 0 und M 0 g = (-1) v * (1,M) * 2 e-127 Problem: Darstellung der 0 (1,0 *2 x immer ungleich 0) Daher Sonderfälle: e = 0 und M 0 denomalisiert (0,M) e = 0 und M = 0 0 e = 255 und M 0 NaN (Not a Number) e = 255 und M = 0 Unendlich (Infinity, je nach Vorzeichen +/-)
32-Bit-Fließkommazahlen nach IEEE 754 Beispiel: 12,75 10 in der IEEE 754 32-Bit Darstellung v = 0 (12,75 10 ist positiv) 12,75 10 1100,11 2 M = [1,]10011000000000000000000 2 e = 3 10 +127 10 = 130 10 10000010 2 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0