Grundlagen der Datenverarbeitung Binär Rechnen Christian Gürtler MultiAugustinum 5. Oktober 2014 Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 1 / 17 Inhaltsverzeichnis 1 Einleitung 2 Umrechnen Dezimal – Binär 3 Addition von Zahlen 4 Einerkomplement – negative Zahlen 5 Zweierkomplement – negative Zahlen 6 Darstellung von Fließkommazahlen Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 2 / 17 Zahlensysteme Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 3 / 17 Umrechnen Moduloverfahren 19 9 4 2 1 1∗ 24 : : : : : 2 2 2 2 2 +0∗ Ergebnis 9 4 2 1 0 23 +0∗ 22 Christian Gürtler (MultiAugustinum) Rest 1 1 0 0 1 +1∗ 20 21 22 23 24 21 niedrigstes Bit rechts höchstes Bit links + 1 ∗ 20 Grundlagen der Datenverarbeitung 5. Oktober 2014 4 / 17 Addition Folgende Regeln gelten: 0+0=0 1+0=1 0+1=1 1 + 1 = 10 → Überlauf Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 5 / 17 Einerkomplement – Dezimal in Binär Negative Zahlen nicht direkt darstellbar Jedes Bit stürzen führende 0: Zahl positiv führende 1: Zahl negativ daher entsprechende Zahl an Stellen notwendig Dezimal +2 +2 −2 +0 −0 Binär 10 010 101 000 111 zu wenig Bits korrekt führende 1, daher negativ für 0 zwei Darstellungen → Nachteil Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 6 / 17 Einerkomplement 1 (Vorzeichenbit) Rechnen mit positiven Zahlen Addition von 2 + 7 mit 4 Bits führt zu Fehler: 0010 + 0111 1001 1001 hat eine führende 1, wäre daher negativ!!! Addition von 2 + 7 mit 5 Bits korrekt: 00010 + 00111 01001 1001 hat eine führende 0, ist daher richtig!!! Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 7 / 17 Einerkomplement 1 (Vorzeichenbit) Rechnen mit negativen Zahlen Addition von (−2) + (−7) mit 5 Bits: 11101 + 11000 110101 Hier passiert ein Überlauf (äußerst linkes Bit), der zum restlichen Ergebnis addiert wird: 10101 + 1 10110 10110 ist negativ (führende 1) → alle Bit stürzen → 01001 → 9 Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 8 / 17 Zweierkomplement – Dezimal in Binär Negative zahlen nicht direkt darstellbar Zahlen werden binär umgerechnet dann jedes Bit gestürzt → Einerkomplement dann 1 addiert → Zweierkomplement Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 9 / 17 Zweierkomplement – Binär in Dezimal Bit stürzen 1 addieren Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 10 / 17 Zweierkomplement – Beispiel Dezimal 118 Einerkomplement Zweierkomplement Binär 01110110 10001001 +1 10001010 Christian Gürtler (MultiAugustinum) -118 Grundlagen der Datenverarbeitung 5. Oktober 2014 11 / 17 Zweierkomplement – Rückrechnung Ausgang 10001010 Zweierkomplement 01110101 +1 01110110 Christian Gürtler (MultiAugustinum) ← Einerkomplement 118 Grundlagen der Datenverarbeitung 5. Oktober 2014 12 / 17 Zweierkomplement – Beispiel I 118 − 57 118: 01110110 57: 00111001 57 Einerkomplement: 11000110 1 addieren → 11000111 01110110 + 11000111 = 00111101 ⇒ 61 Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 13 / 17 Zweierkomplement – Beispiel II 7−7 7: 00000111 7 Einerkomplement: 11111000 1 addieren → 11111001 00000111 + 11111001 = 00000000 => 0 Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 14 / 17 Fließkommazahlen Beispiel 0.4 Rest 0.4 ∗ 2 = 0.8 0 0.8 ∗ 2 = 1.6 1 0.6 ∗ 2 = 1.2 1 0.2 ∗ 2 = 0.4 0 0.4 ∗ 2 = 0.8 0 18.4 ist demnach 10010.01100 je nach Bit-Anzahl Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 15 / 17 Fließkommazahlen - Normalisierung Das Komma so weit links wie möglich, ohne dass eine 0 links steht 10010.01100 ist 1.001001100 ∗ 24 Bit 8 23 1 Exponent Mantisse Vorzeichen 32-Bit-Darstellung Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 16 / 17 Fließkommazahlen - Normalisierung Ermittlung des Exzesses: 8 Bit für Exponent: 2(8−1) − 1 = 127 4 von Normalisierung (1.001001100 ∗ 24 ) 127 + 4 = 131 131 binär ist 10000011 18.4 ist 0 10000011 00100100. . . Vorzeichenbit 8 Bit Exponent Mantisse Christian Gürtler (MultiAugustinum) Grundlagen der Datenverarbeitung 5. Oktober 2014 17 / 17