Grundlagen der Technischen Informatik Zahlensysteme Kapitel 4.5.1 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design Grundlagen der Technischen Informatik Beispiel: Troll-Counting • “Hah! Yes? Everyone knows trolls can’t even count up to four!” • In fact, trolls traditionally count like this: one, two, three, . . . many [Fig. 0] many one, many two, many three, many many many many one, many many two, many many three, many many many, many many many one, many many many two, many many many three, Grundlagen der Technischen Informatik 2 LOTS Beispiel: Troll-Counting • Clever … • … aber wir können das noch besser. • Zählen mit den Zahlen {0, 1, 2, 3}: 0, 1, 2, 3, . . . 10, 11, 12, 13, . . . 20, 21, 22, 23, . . . 30, 31, 32, 33, . . . 100, 101, 102, 103, . . . Grundlagen der Technischen Informatik 3 Beispiel: Zählen mit den Ziffern {0, 1, 2, 3} • Basis R = 4 ! 1 41 + 0 40 = 4 0, 1, 2, 3, . . . 10, 11, 12, 13, . . . 20, 21, 22, 23, . . . 30, 31, 32, 33, . . . 1 42 + 0 41 + 3 40 = 19 100, 101, 102, 103, . . . Grundlagen der Technischen Informatik 4 Polyadische Zahlensysteme • Polyadische Zahlensysteme geben den Ziffern ihren Wert in Abhängigkeit von ihrer Stelle innerhalb einer systematischen stellenorientierten Anordnung • Die Stellenwerte entsprechen den Potenzen der Basis R des jeweiligen Zahlensystems Dezimalzahl: 5 4 2 Ziffer {0, 1, 2, … 10-1} • Polyadische Darstellung: N = 5 102 + 4 101 + 2 100 Grundlagen der Technischen Informatik 5 Polyadische Zahlensysteme: Aufbau • Beispiele: 168910 10223 10112 4112 = 1 103 + 6 102 + 8 101 + 9 100 = 1689 = 1 33 + 0 32 + 2 31 + 2 30 = 35 = 1 23 + 0 22 + 1 21 + 1 20 = 11 = 4 121 + 1 120 = 49 • Allgemein: N Aufbau einer Zahl N = dn-1 Rn-1 + ... + d1 R1 + d0 R0 N: Zahl im Zahlensystem R: Basis, (Grundzahl, Radix) R 2 Ri : Wertigkeit der i-ten Stelle di: Ziffer der Stelle i Z: Menge der Ziffern: di Z = {0,1,2, ... , R-1} Grundlagen der Technischen Informatik 6 Dualsystem (Binärsystem) • Basis: R2 Z2 = 2 (Basis) = {0,1} • Beispiel: 11012 = 1 23 + 1 22 + 0 21 + 1 20 = 13 Grundlagen der Technischen Informatik 7 Dualsystem (Binärsystem) Dezimalzahlen 103 102 101 – Dualsystem: • grundlegendes Zahlensystem für numerische Verarbeitung digitaler Daten (effizient in Hardware darstellbar und verarbeitbar) • Aber: sehr viele Ziffern zur Darstellung notwendig • Daher: oftmals 3 oder 4 Ziffern zusammenfassen resultiert in Oktal- oder Hexadezimalsystem 100 Dualzahlen 24 23 22 21 20 0 0 1 1 2 1 0 3 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 1 0 0 0 9 1 0 0 1 1 .. . 0 .. . .. . 1 .. . 0 .. . 1 .. . 0 .. . 1 9 1 0 0 1 1 2 0 1 0 1 0 0 Grundlagen der Technischen Informatik 8 Oktalsystem • Basis: R8 Z8 =8 = {0,1,2,3,4,5,6,7} • Beispiele: Dezimal Oktal Dezimal Oktal Oktalzahlen 0 1 2 3 4 5 6 7 08 18 28 38 48 58 68 78 8 9 10 11 12 13 14 15 108 118 128 138 148 158 168 178 Grundlagen der Technischen Informatik 9 Hexadezimalsystem • Basis: R16 Z16 = 16 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} • Beispiele: Hexadezimalzahlen Dezimal Hex Dezimal Hex 0 1 016 116 17 18 1116 1216 … … 158 … 9E16 9 10 11 12 13 14 15 16 916 A16 B16 C16 D16 E16 F16 1016 … 255 159 160 9F16 A016 161 162 163 164 A116 A216 A316 A416 Grundlagen der Technischen Informatik 10 … FF16 Hexadezimalsystem • 1 Ziffer im Hexadezimalsystem entspricht genau 4 Ziffern im Dualsystem • 2 Ziffern im Hexadezimalsystem zusammengefasst sind 1 Byte (8 Bit) Dezimal 0 1 Hex 016 116 Dual 02 12 Dezimal Hex 17 18 1116 1216 … 9 10 11 12 13 14 15 16 916 A16 B16 C16 D16 E16 F16 1016 … 10012 10102 10112 11002 11012 11102 11112 100002 … 158 … 9E16 159 160 9F16 A016 Dual 161 162 163 164 A116 A216 A316 A416 1010 01002 Grundlagen der Technischen Informatik 11 … 255 … FF16 … 1111 11112 Wandlung von Zahlensystemen • • • Wenn die Basis R2 eines Zahlensystems die Potenz der Basis R1 eines anderen Zahlensystems ist, so sind Zahlen zwischen diesen Systemen sehr leicht umzuwandeln. n Also: R2 = R1 n Stellen aus R1 zusammenfassen zu einer einzelnen Ziffer in R2 Umrechnung zwischen Dualsystem und Oktal- bzw. Hexadezimalsystem: Oktal (8=23) Dual Hex (16=24) Dual 48 78 7 78 1002 1112 111 1112 111 100 0112 C16 516 C C16 11002 01012 5 7 4 1100 0101 11002 Grundlagen der Technischen Informatik 12 38 1 2 416 0001 0010 01002 Polyadische Zahlensysteme: Wandlung • Wandlung von Zahlensystemen: – Wenn die Basis eines Zahlensystems die Potenz der Basis eines anderen Zahlensystems ist, so sind Zahlen zwischen diesen Systemen sehr leicht umzuwandeln – Zusammenfassung von mehreren Stellen zu einer einzelnen Ziffer • Beispiel 1: ( ( 1011 0101 0001 )2 B 5 1 )16 5 2 1 )8 101 010 001 – Wandlung: Dual- in Hexadezimalsystem • Beispiel 2: ( ( – Wandlung: )2 Oktal- in Dualsystem Grundlagen der Technischen Informatik 13 Wandlung ins Dezimalsystem • Falls keine besondere Beziehung zwischen den Basen besteht, kann man die Umrechnung über das Dezimalsystem durchführen • Wandlung zunächst in das Dezimalsystem: – Bekannte Formel: • Beispiel: N10 = dn-1 R10n-1 + ... + d1 R101 + d0 R100 (FA7E)16 = ?10 ( ( F A 7 E F163 + ( + 61440 + 2560 7161 + E160 )10 15163 + 10162 + ( A162 )16 7161 + 14160 + 112 )10 + 14 Grundlagen der Technischen Informatik 14 )10 = 6412610 Wandlung aus dem Dezimalsystem • Durch Ganzzahldivision mit Rest kann Umwandlung vom Dezimalsystem in System mit der Basis R durchgeführt werden: Dezimalzahl wird durch R dividiert (Rest = Stelle d0), entstehende Quotienten rekursiv nach gleichem Schema verarbeiten ... Q u o tie n t 2 R Q u o tie n t 1 R N10 R Quotient 3, Rest 2 Quotient 2, Rest 1 Quotient 1, Rest 0 d2 d1 d0 N10 = ( d2 d1 d0 )R Grundlagen der Technischen Informatik 15 Polyadische Zahlensysteme: Wandlung • Beispiel: Wandlung der Dezimalzahl 2016 in Hexadezimalzahl – Umrechnung von 201610 in das Hexadezimalsystem (R=16): 7 16 126 16 2016 16 = = = 0 Rest 7 7 Rest 14 126 Rest 0 E 0 7 201610 = 7E016 Grundlagen der Technischen Informatik 16 Elementare Rechenoperationen • Automatisierte Rechenoperationen sind von zentraler Bedeutung; Basisoperationen sind: +, -, *, / • Rechnen kann man grundsätzlich in allen Systemen • Im Dualsystem benötigt man besonders wenige Regeln. Grundlagen der Technischen Informatik 17 Addition von Dualzahlen • Regeln für die Addition: • • • • Regel 0: Regel 1: Regel 2: Regel 3: 0 0 1 1 + + + + 0 1 1 1 = = = + 0 1 + 0 = 1 10 1 = 11 • Damit Addition von Dualzahlen, wie beim schriftlichen Addieren in der Grundschule: 1 + 1 Benutzte elementare Regel: 1 0 1 1 1 1 1 1 1 0 1 0 0 Übertrag 1 0 0 1 0 1 0 2 2 3 2 1 0 Grundlagen der Technischen Informatik 18 BCD-Code (Binary Coded Decimal) • Umrechnung zwischen Dualsystem und Oktal- bzw. Hexadezimalsystem durch Zusammenfassung von Ziffern • Bei der oft gebrauchten Umwandlung vom Dezimalsystem in das Dualsystem ist dies nicht möglich • Daher BCD-Code (Binary Coded Decimal) – Jede Dezimalziffer ist durch 4-Bit Dualzahl dargestellt Tetraden: Dezimal Pseudotetraden: BCD Dezimal BCD (unbenutze Codewörter) Dezimal BCD 10 1010BCD 0 0000BCD 5 0101BCD 11 1 0001BCD 6 0110BCD 1011BCD 12 1100BCD 2 0010BCD 7 0111BCD 13 1101BCD 3 0011BCD 8 1000BCD 14 4 0100BCD 9 1001BCD 1110BCD 15 1111BCD Grundlagen der Technischen Informatik 19 Rechnen im BCD-Code • Wie in den unterschiedlichen Zahlensystemen können auch BCD-kodierte Zahlen verrechnet werden Bei der BCD-Addition können aber Pseudotetraden entstehen • Zur Korrektur: zu Pseudotetraden und bei jedem Übertrag muss noch 610 = 01102 addiert werden. 5 + 7 = 12 0101 + 0111 = 1100 + 0110 Korrektur 0001 0010 1 2 Grundlagen der Technischen Informatik 20 Gleitkommazahlen • Die bisher vorgestellten Codes haben das Problem, dass durch die Anzahl der Codewörter auch der Zahlenraum eingeschränkt ist • Problem: den Ziffern sind feste Stellenwerte zugeordnet, womit allenfalls sog. Festkommazahlen realisierbar sind • Lösung: Angabe eines zusätzlichen Exponenten • Die Darstellung von Zahlen durch Mantisse und Exponent wird Gleitkommazahl genannt • Beispiel: - 1,2345 10 Vorzeichen Mantisse 67 Exponent Grundlagen der Technischen Informatik 21 Gleitkommazahlen • • • Gleitkommazahlen können auf unterschiedliche Weise kodiert werden. Daher hat der IEEE Richtlinien festgelegt, wie Gleitkommazahlen dargestellt werden sollen. Gleitkomma-Zahlendarstellung gemäß IEEE-Standard 754: Vorzeichen Exponent E Mantisse M 2-1 V Bit 31 30 23 2-2 2-3 2-4 2-5 ... 2-21 2-22 2-23 22 Zahl = (-1)V · 2E-127 · 1,M • • • Vorzeichen: V = 0 positiv, V = 1 negativ Mantisse: Die Mantisse ist normalisiert, d.h., dass vor dem Komma genau eine 1 steht. Diese wird nicht gespeichert, sondern nur die Nachkommastellen Exponent: Der Exponent wird berechnet durch Subtraktion einer Verschiebedistanz („Bias“): E - 127. Dadurch ist E immer positiv. Grundlagen der Technischen Informatik 22 0 Gleitkommazahlen Vorzeichen Exponent E Mantisse M 2-1 V Bit • 31 30 23 2-2 2-3 2-4 2-5 ... 2-21 2-22 2-23 22 0 Spezialwerte werden durch besondere Bitmuster codiert: Biased Exponent E Mantisse M 0 < E < 255 M (- 1)V·2E-127 ·(1,M) 255 0 ungültiger Wert (NAN) z.B. Division durch 0 255 0 (- 1)V · (unendlich) Wert außerhalb des Zahlenbereichs 0 0 0 0 Wert (- 1)V·2-126 ·(0,M) (- 1)V · 0 Grundlagen der Technischen Informatik 23 es gibt +0 und -0 Gleitkommazahlen nach IEEE-Standard • Die Zahl mit 7 Dezimalstellen hinter dem Komma im IEEE-Format dargestellt: 3,141592610 11,00100100001111110110102 = ((-1)0 x 2128-127)10 x 1,100100100001111110110102 Darstellung: 0 10000000 10010010000111111011010 Grundlagen der Technischen Informatik 24 Abbildungsverzeichnis • [Fig. 0] Terry Pratchett (1993). Men at Arms. ISBN: 0‐575‐05503‐0, Copyright © by Josh Kirby, Fair use, URL: https://en.wikipedia.org/w/index.php?curid=2092022. Grundlagen der Technischen Informatik 25