Binärarithmetik 1 Stellenwertorientierte Zahlensysteme, ganze Zahlen Mit einer Basiszahl b: b > = 2 und Ziffern {0, Z1...., Zb-1} mit 0 < Z1 < Z2 < Zb-1 < b kann jede Zahl X für die 0 < = X < b n+1 gilt. mit passenden Ziffern Xn .... X0 in der Form Xn * bn + xn-1 + bn-1 + ... + ;X1 * b1 + X0 * b0 /b0 = 1 eindeutig mit passenden Xi in {0, Z1, ..., Zb-1} dargestellt werden. Beispiele: Das Binärsystem mit der Basiszahl 2 und den Ziffern {0,1} Das Dezimalsystem mit der Basiszahl 10 und den Ziffern {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Das Oktalsystem mit der Basiszahl 8 und den Ziffern {0, 1, 2, 3, 4, 5, 6, 7}. Das Sedezimalsystem (Hexadezimalsystem) mit der Basiszahl 16 und den Ziffern {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. Binärsystem 1111011 11111000110 1010101010101010 Oktalsystem 173 3712 125252 Dezimalsystem 123 1994 43690 i Zahl i Binär-Arithmetik Sedezimalsystem 7B 7CA AAAA i Zi * b Seite 1 Binärarithmetik 2 Konvertierung und Rückkonvertierung von Zahlen Der Dezimalzahl 4711 entspricht die Dualzahl 1001001100111 (mögliches) Rechenschema: 4711 2355 1177 588 294 147 73 36 18 9 4 2 1 dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist dividiert durch 2 ist 2355 1177 588 294 147 73 36 18 9 4 2 1 0 Rest Rest Rest Rest Rest Rest Rest Rest Rest Rest Rest Rest Rest 1 1 1 0 0 1 1 0 0 1 0 0 1 Konvertierung 0,810 Rechenschema: 0.8 multipliziert mit 2 = 0.6 + 1 0.6 multipliziert mit 2 = 0.2 + 1 0.2 multipliziert mit 2 = 0.4 + 0 0.4 multipliziert mit 2 = 0.8 + 0 0.8 multipliziert mit 2 = 0.6 + 1 ...................usw. 0.810 = 0.110011001100... Bemerkung: 0.8 im Dezimalsystem ist im Bimärsystem nur mit unendlich langem gebrochenen Anteil darzustellen. Binär-Arithmetik Seite 2 Binärarithmetik 3 Rechenregeln für Dualzahlen Operation Ergebnis Übertrag, Borgbit auf die Nächsthöhere Stelle 0+0 0+1 1+0 1+1 0 1 1 0 0 0 0 +1 „Übertragsbit“ 0–0 0–1 1–0 1–1 0 1 1 0 „Borgbit“ 0*0 0*1 1*0 1*1 0 0 0 1 0 0 0 0 Binär-Arithmetik Seite 3 Binärarithmetik 4 Binär-Arithmetik Seite 4 Binärarithmetik 5, Rechnen mit 2-Komplementzahlen Beispiel: 0010 + 0101 --------------0111 (+2) (+5) 0010 + 0110 ---------------1000 (+2) (+6) 1011 + 0100 ---------------1111 (-5) (+4) 1011 + 0101 ----------------0000 (-5) (+5) 1011 + 0110 ----------------0001 (-5) (+6) 1011 + 1101 ----------------1000 (-5) (-3) 1011 + 1100 ----------------0111 (-5) (-4) (+7) (ok) (-8) (Übertrag ins Vorzeichenbit, falsch) (-1) (ok) (0) (Überlauf, jedoch ok) (+1) (Überlauf, jedoch ok) (-8) (Überlauf, jedoch ok) (+7) (Überlauf, falsch) Beachte Überträge in das 3. und 4. Bit Sind die Überträge gleich ok Sind die Überträge ungleich falsch Binär-Arithmetik Seite 5 Binärarithmetik 6, Gleitkommazahlen Gleitkommazahlen dienen der Darstellung des Datentyps REAL Sie sind auf einen großen Wertebereichs angelegt. Ihre Darstellungsgenauigkeit ist von Ihrer Ausdehnung (Zahl der Bits) abhängig. Gleitkommazahlen werden durch eine Mantisse und einen Exponenten dargestellt. Das Gleitkommazahlenlayout ist durch IEEE (Institut of Electrical and Electronics Engeneers) standardisiert worden. Standardisierungsfestlegungen: Gleitkommazahlen (floating point numbers) haben den Aufbau Zfp = (-1)s(1.f)2e-bias Es werden zwei Standardformate angegeben Einfach Genauigkeit (single precision) 4 Byte = 32 Bit 31 23 22 0 8-Bit Biased S 23-Bit-Fraction f Exponent e Doppelte Genauigkeit (double precision) 8 Byte = 64 Bit 63 52 51 0 11-Bit Biased S 52-Bit-Fraction f Exponent e S Vorzeichenbit S = 0: Zahl ist positiv; S = 1: Zahl ist negativ Die Mantisse 1.f wird als binär codierte Zahl in normalisierter Form angegeben. Binär-Arithmetik Seite 6 Binärarithmetik 7 Die Normalisierung Die Dezimalzahl wird zunächst in eine Binärzahl konvertiert. Danach wird die Normierung ausgeführt. Das bedeutet, dass der Dezimalpunkt so verschoben wird, bis eine führende 1 (bei Zahlen ungleich 0) entsteht. Bei dieser Verschiebung wird natürlich der Exponent vermindert oder erhöht, um den Zahlenwert zu erhalten. Da immer eine 1 vor dem Dezimalpunkt steht (bei Zahlen ungleich 0) wird sie nicht mitgespeichert, (hidden bit). Für die Gleitkommadarstellung wird als Mantisse der gebrochene Anteil ohne das hidden bit verwendet. Der zunächst vorzeichenbehaftete Exponent E wird als biased exponent e dargestellt. e = bias + E oder E = e – bias bias = 127 bei einfacher Genauigkeit bias = 1023 bei doppelter Genauigkeit Durch diesen Trick wird e eine vorzeichenlose Zahl! Binär-Arithmetik Seite 7 Binärarithmetik 8 Additionen von Gleitkommazahlen Die Gleitkommazahlen x = mx2ex und y=my2ey Die Zahl mit dem kleineren Exponenten wird denormalisiert, indem sie um den Betrag der Differenz der Exponenten nach rechts verschoben wird. Damit haben beide Zahlen den gleichen Exponenten und die Mantissen können als Festkommazahlen addiert werden. Feststellungen der Zahl der führenden Nullen (Number of Leading Zeros, NLZ) Normalisierung des Ergebnis, da die Summe größer als 1 oder kleiner als 0,5 werden kann. Größer als 1 kann die Summe werden, wenn die Exponenten beider Summanden gleich waren. Rechtsverschiebung um NLZ Binär-Arithmetik Seite 8 Binär-Arithmetik Seite 9 Binärarithmetik 10 Beispiel: Dez. Binär: 7,0 + 0,75 0.111*23 + 0.11 * 20 Entnormalisieren der kleineren Zahl 0.11 * 20 0.111 + 0.000 11 ----------------0.111 11 * 0.00011 * 23 23 Keine abschließende Normalisierung erforderlich Beispiel: Dez. Binär: 0.75 + 0,375 0.11 * 20 +0.11 * 2-1 0.11 * 2-1 0.11 + 0.011 ------------1.001 * 2 0.011 * 20 0.1001 * 21 (Normalisierung) Die Subtraktion kann auf eine Addition des Komplements zu 1.0 zurückgeführt werden. Binär-Arithmetik Seite 10 Binärarithmetik 11 Eine Methode zur Ermittlung interner Darstellungen von Variablen Binär-Arithmetik Seite 11 Binärarithmetik 11 Binär-Arithmetik Seite 12 Binärarithmetik 13 Binär-Arithmetik Seite 13 Binärarithmetik 14 Binär-Arithmetik Seite 14 Binär-Arithmetik Seite 15 Hausaufgaben 1. Vervollständigen Sie die Tabelle: Dezimal 109 Hexadezimal Binär AB 111011101 2. Geben Sie von den Dezimalwerten a = 33 und b = 129 die 8-BitZweier-Komplement-Darstellung an. Bilden Sie in dieser Darstellung a + b, a - b und b - a. (Beachten Sie die Gültigkeit der Ergebnisse) 3. Skizzieren Sie die interne Darstellung von Gleitkommazahlen. Geben Sie -129.75 in einer 4-Byte-Darstellung an. 4. Ermitteln Sie die kleinste und die größte darstellbare positive Zahl für eine 4-Byte-Gleitkommazahlen nach IEEE 754. 5. Zur Kommunikation einer Alarmanlage mit einem Überwachungsrechner wurde eine Sprache mit 4 Worten vereinbart. 1. 2. 3. 4. Kontrollwort: Bewegtes Objekt nähert sich: Bruch Tür/Fenster: Bewegung im Innenraum: 1010 1100 0 0110 0011 0 1001 1010 0 0000 1110 1 Bestimmen Sie die Hamming-Distanz der Sprache. Der Überwachungsrechner empfängt das Wort 0110 0011 1 Welchem Wort der vereinbarten Sprache kann das Bitmuster mit der höchsten Wahrscheinlichkeit zugeordnet werden? Binär-Arithmetik Seite 16