Darstellung von Zeichen und Zahlen

Ähnliche Dokumente
6.2 Kodierung von Zahlen

BB/CS- SS00 Rechner im Überblick 1/1. Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit den folgenden Eigenschaften:

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Einführung in die Informatik I

Rechnerstrukturen WS 2012/13

Grundlagen der Technischen Informatik. 4. Übung

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Grundlagen der Technischen Informatik. 4. Übung

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

2 Darstellung von Zahlen und Zeichen

2.1.2 Gleitkommazahlen

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

Übung Praktische Informatik II

Grundlagen der Technischen Informatik. 4. Übung

Einstieg in die Informatik mit Java

Einführung in die Informatik I

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

Wertebereiche, Overflow und Underflow

Zahlen und Zeichen (1)

Informationsdarstellung 2.2

Zahlen in Binärdarstellung

Vorlesung Programmieren

2 Repräsentation von elementaren Daten

Informationsdarstellung. 2 Informationsdarstellung. Ziele. 2 Informationsdarstellung Texte. Texte WS 2017/2018

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

, 2015S Übungstermin: Mi.,

Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

, 2014W Übungstermin: Fr.,

Motivation 31. Mai 2005

Darstellung von Informationen

Technische Informatik - Eine Einführung

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Einstieg in die Informatik mit Java

5 Zahlenformate und deren Grenzen

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Technische Informatik

Vorzeichenbehaftete Festkommazahlen

Binäre Gleitkommazahlen

Kapitel 5: Darstellung von Daten im Rechner

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

Technische Informatik I SS 2005

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

2 Darstellung von Zahlen und Zeichen

Einführung in die Programmiertechnik

Einstieg in die Informatik mit Java

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Fest- und Gleitkommasysteme

Einführung in die Programmierung Wintersemester 2008/09

2 Darstellung von Zahlen und Zeichen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014

Programmieren in C Einführung

Technische Informatik - Eine Einführung

GTI ÜBUNG 4 BINÄR-, HEX- UND GLEITKOMMAZAHLEN-ARITHMETIK

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Grundlagen der Technischen Informatik. 3. Übung. Christian Knell Keine Garantie für Korrekt-/Vollständigkeit

1. Tutorium Digitaltechnik und Entwurfsverfahren

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

Lösungen: zu 1. a.) b.) c.)

RO-Tutorien 3 / 6 / 12

Datendarstellung Teil 2

DuE-Tutorien 16 und 17

Lösung 1. Übungsblatt

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Leseprobe. Taschenbuch Mikroprozessortechnik. Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN:

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Basisinformationstechnologie I

Wie werden die Barcode Prüfziffern berechnet?

Kapitel 5: Daten und Operationen

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

HaDePrak WS 05/ Versuch

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Einführung in die Computerorientierte Mathematik

Informatik I Übung, Woche 41

Rechnergrundlagen SS Vorlesung

Control Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control

Computer Arithmetik. Computer Arithmetik Allgemein

Zahlendarstellungen und Rechnerarithmetik*

Lösung 2. Übungsblatt

There are only 10 types of people in the world: those who understand binary, and those who don't

1. Vorzeichen und Betrag (engl. Sign-/Magnitude) 2. Stellenkomplement 3. Basiskomplement

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos.

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Datendarstellung Teil 2

X = {x 1,x 2,...} sei ein Symbolalphabet eines Kodes. In diesem Kode sind card(x) = X Sachverhalte darstellbar

Grundlagen der Informationstechnik

Informatik I Modul 2: Rechnerarithmetik (1)

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

Kapitel 2. Zahlensysteme, Darstellung von Informationen

3. Informationsdarstellung

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Kodierung. Bytes. Zahlensysteme. Darstellung: Zahlen

Zum Nachdenken. Wenn die Zahl (123) hat, was könnte dann (123,45) 10

7. Übung zur Vorlesung Grundlagen der Informatik

EIN NEUES KAPITEL: SPEICHERUNG UND INTERPRETATION VON INFORMATION

3. Datentypen, Ausdrücke und Operatoren

Technische Informatik (RO)

Transkript:

und Zahlen [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg 1. November 2005 1 / 57

Der Begriff der Information Der Begriff der Information wird sowohl umgangssprachlich als auch in verschiedenen Wissenschaften unterschiedlich benutzt! Example (Informationstheorie: Informationsgehalt, Eigeninformation) Information = Maß für die Beseitigung von Unbestimmtheit [...später mehr dazu, siehe Datenkompression] Example (Informatik: Daten) Information = Daten... daher auch der Begriff Informationsverarbeitung 2 / 57

Daten Was ist Information? Die Daten, die in einem Rechner verarbeitet werden, sind vielfältig: Zeichen, z. B. über Tastatur eingegebenes Zeichen Text, z. B. Brief an das Finanzamt Zahlen Bilder und Videos Audio-Daten Speicherung von Daten in digitalen binären Rechner Auch wenn ein Algorithmus prinzipiell mit solchen Objekten operiert, letztendlich müssen sie (bei den heutigen digitalen Rechnern) als Folgen von Bits repräsentiert werden. 3 / 57

Bit, Byte, Wort, Doppelwort,... Definition (Bit und Byte) Ein Bit ist eine Elementarinformation in Form einer einzelnen Ziffer, die entweder den Wert 0 oder den Wert 1 annehmen kann. Eine Folge von acht Bits wird als Byte bezeichnet. Durch ein Byte können 2 8 = 256 verschiedene Werte/Zeichen dargestellt werden Bei einem 2 k -Bit Rechner besteht ein Wort aus 2 k Bits, ein Doppelwort aus 2 2 k Bit. Für k = 32 bzw. k = 64 können mit einem Wort 4.294.967.296 bzw. 18.446.744.073.709.551.616 verschiedene Informationen dargestellt werden. Ob an einem Punkt der Wert 1 oder 0 anliegt, wird über das Potenzial an diesem Punkt definiert. Bei nichtinvertierender Logik z. B. liegt an einem Punkt der Wert 1 dann an, wenn sein Potenzial größer als die Schwellenspannung eines Transistors ist. 4 / 57

Codes Was ist Information? Codes: Definition und Beispiele Codes: Eigenschaften und Ziele Welches Byte welches Zeichen darstellt, ist eine Frage der Kodierung! Definition (Code) Gegeben sei ein endliches Alphabet A, also eine endliche Menge von Symbolen. Weiterhin sei B die Menge aller beliebig langen endlichen Bitfolgen. 1 Ein Code ist eine injektive Abbildung c : A B. 2 Ein Code c heißt auch Code fester Länge oder genauer Code der Länge n, wenn c : A B, B B n für beliebiges n N gilt, 3 Die Menge aller Codewörter eines Codes c ist durch c(a) := { w B ; a A : c(a) = w } gegeben. 5 / 57

Codes Was ist Information? Codes: Definition und Beispiele Codes: Eigenschaften und Ziele Example Gegeben sei das Alphabet A 1 := {rot, grün, blau}. Dann ist die Abbildung c 1 : A 1 B 24, c 1 := { (rot 1111 1111 0000 0000 0000 0000), (grün 0000 0000 1111 1111 0000 0000), (blau 0000 0000 0000 0000 1111 1111) } ein Code der Länge 24. Example Gegeben sei das Alphabet A 2 := {lila, violett, gelb}. Dann ist die Abbildung c 2 : A 2 B 24, c 2 := { (lila 1111 1111 0000 0000 1111 1111), (violett 1111 1111 0000 0000 1111 1111), (gelb 1111 1111 1111 1111 0000 0000) } kein Code. 6 / 57

Codes: Definition und Beispiele Codes: Eigenschaften und Ziele ASCII (American Standard Code for Information Interchange) Tabelle: Code-Tabelle für den ASCII-Code c 6 0 0 0 0 1 1 1 1 c 5 0 0 1 1 0 0 1 1 c 4 0 1 0 1 0 1 0 1 c 3 c 2 c 1 c 0 0 0 0 0 NUL DLE 0 P p 0 0 0 1 SOH DC1! 1 A Q a q 0 0 1 0 SFX DC2 2 B R b r 0 0 1 1 ETX DC3 # 3 C S c s 0 1 0 0 EOT DC4 $ 4 D T d t 0 1 0 1 ENQ NAK % 5 E U e u 0 1 1 0 ACK SYN & 6 F V f v 0 1 1 1 BEL ETB 7 G W g w 1 0 0 0 BS CAN ( 8 H X h x 1 0 0 1 HT EM ) 9 I Y i y 1 0 1 0 LF SUB * : J Z j z 1 0 1 1 VT ESC + ; K [ k { 1 1 0 0 FF FS, L \ l 1 1 0 1 CR QS - = M ] m } 1 1 1 0 SO RS. N ˆ n * 1 1 1 1 SI US /? O o DEL {z } {z } Steuerzeichen Schriftzeichen 7 / 57

Codes: Definition und Beispiele Codes: Eigenschaften und Ziele Kodierung und Dekodierung von Zeichen Kodierung bzw. Verschlüsselung Vorgang des Übersetzens eines Zeichens in sein Codewort. Dekodierung bzw. Entschlüsselung Vorgang des Rückübersetzens eines Codeswortes in das dazugehörige Zeichen. 8 / 57

Welcher Code für welchen Zweck? Codes: Definition und Beispiele Codes: Eigenschaften und Ziele Gegeben sei ein endliches Alphabet A der Größe m. Wie hat man A zu kodieren? Bei Codes fester Länge n: Wie groß muss n sein? Es muss n log 2 m gelten!... ist eine Folgerung aus Definition (Tiefe eines gerichteten Baumes) Die Tiefe eines gerichteten Baumes T ist gegeben durch die Länge des längsten Pfades von der Wurzel von T zu einem seiner Blätter. Lemma Ein binärer Baum der Tiefe k besitzt höchstens 2 k Blätter. 9 / 57

Welcher Code für welchen Zweck? Codes: Definition und Beispiele Codes: Eigenschaften und Ziele Wie hat man A zu kodieren? Welche zusätzlichen Ziele werden mit der Kodierung verfolgt? Mögliche Ziele keine weiteren Ziele Fehlererkennung Es muss n log 2 m + r für ein r 1 gelten! [für Weiteres siehe später...] Fehlerkorrektur Es muss n log 2 m + r für ein r log 2 log 2 m gelten! [für Weiteres siehe später...] Minimierung der mittleren Codewortlänge Der Code muss ein Code variabler Länge sein! [für Weiteres siehe später...] 10 / 57

Zahlendarstellungen Was ist Information? Es gibt mehrere Möglichkeiten, Zahlen im Rechner darzustellen: Darstellung durch Betrag und Vorzeichen (engl.: sign and magnitude representation) Einer-Komplement-Darstellung (engl.: one s complement representation) Zweier-Komplement-Darstellung (engl.: two s complement representation) Gleitkommadarstellung nach dem IEEE 754 Format Die verschiedenen Darstellungen besitzen unterschiedliche Eigenschaften! 11 / 57

Was ist Information? Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit: 1 b 2 ist eine natürliche Zahl, die Basis des Stellenwertsystems. 2 Z ist eine b-elementige Menge von Symbolen, die auch als Ziffern bezeichnet werden. 3 δ : Z {0, 1,..., b 1} ist eine Abbildung, die jeder Ziffer eine natürliche Zahl zwischen 0 und b 1 zuordnet. Example Basis b Zahlensystem Ziffernmenge Z b = 2 Binärsystem 0, 1 b = 8 Oktalsystem 0, 1, 2, 3, 4, 5, 6, 7 b = 10 Dezimalsystem 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 b = 16 Hexadezimalsystem 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,A,B,C,D,E,F Reihenfolge der Ziffern gemäß wie sie auf die jeweiligen Zahlen abgebildet werden. 12 / 57

Festkommadarstellung ohne Vorzeichen Definition (Nichtnegative Festkommazahl) Gegeben sei ein Zahlensystem S := (b, Z, δ) sowie n, k N. Eine nichtnegative Festkommazahl d mit n Vor- und k Nachkommastellen ist eine Folge von Ziffern aus Z, deren Länge n + k beträgt. Der Wert d von d := d nd n 1... d 1 d 0 {z } Vorkommastellen mit d i Z ( k i n) beträgt d := nx i= k δ(d i ) b i. d 1... d k {z } Nachkommastellen Ist die Basis des benutzten Stellenwertsystems nicht unmittelbar aus dem Kontext ersichtlich, versieht man die Ziffernfolge mit der Basis als Index. 13 / 57

Example Wir betrachten die Festkommazahl 0110, die je nach Basis b des Stellenwertsystems, bezüglich dessen sie interpretiert wird, unterschiedliche Werte darstellt. Dabei sind in diesem Beispiel sämtliche Ziffern der Zahl Vorkommastellen, es gilt also n = 3 und k = 0. Basis 2 8 10 Festkommazahl 0110 2 0110 8 0110 10 Dezimalwert 6 10 72 10 110 10 14 / 57

Zahlen sind zum Rechnen da! Wie kann man in den verschiedenen n rechnen? Mögliche Realisierungen arithmetischer Operationen: [später mehr...] 15 / 57

Darstellung durch Betrag und Vorzeichen Definition (Darstellung durch Betrag und Vorzeichen) Gegeben sei eine Festkommazahl d := d nd n 1... d 0 d 1... d k mit n + 1 Vor- und k Nachkommastellen (k, n 0). Interpretiert man d als Darstellung durch Betrag und Vorzeichen, so wird dies durch die Bezeichnung [d] BV gekennzeichnet. Die Bitstelle d n repräsentiert das Vorzeichen, und durch die Stellen d n 1... d 0 d 1... d k wird der Betrag von d dargestellt. Der Dezimalwert [d] BV ergibt sich somit zu [d nd n 1... d 0 d 1... d k ] BV := ( 1) dn n 1 X i= k d i 2 i. 16 / 57

Darstellung durch Betrag und Vorzeichen Example (n = 2 und k = 0) d 000 001 010 011 100 101 110 111 [d] BV 0 1 2 3 0 1 2 3 17 / 57

Darstellung durch Betrag und Vorzeichen Eigenschaften der Darstellung durch Betrag und Vorzeichen 1 Symmetrischer Zahlenbereich: [ (2 n 2 k ), 2 n 2 k ] 2 Keine kanonische Darstellung der Zahlen aus dem Zahlenbereich! 3 Addition und Subtraktion sind recht kompliziert in dieser Darstellung! [als Übung...] 18 / 57

Einer-Komplement-Darstellung Definition Gegeben sei eine Festkommazahl d := d nd n 1... d 0 d 1... d k mit n + 1 Vor- und k Nachkommastellen (k, n 0). Interpretiert man d als Darstellung im Einer-Komplement, so wird dies durch die Bezeichnung [d] 1 gekennzeichnet. Die Bitstelle d n repräsentiert wieder das Vorzeichen. Der Dezimalwert [d] 1 ergibt sich zu 0 X [d nd n 1... d 0 d 1... d k ] 1 := @ n 1 i= k 1 d i 2 i A dn 2 n 2 k. 19 / 57

Einer-Komplement-Darstellung 20 / 57

Einer-Komplement-Darstellung Lemma (Negation von Bitfolgen im Einer-Komplement) Seien d und d Bitfolgen. Zudem gehe d durch Komplementieren aller Bits aus d hervor. Dann gilt: [d ] 1 = [d] 1 21 / 57

Einer-Komplement-Darstellung Beweis: [d ] 1 + [d] 1 = = = = = 0 1 @ n 1 X d i 2 i A dn 0 X 2 n 2 k + @ n 1 i= k 0 1 @ n 1 X (d i + d i ) A 2i (dn + d n ) i= k i= k 2 n 2 k 1 d i 2 i A d n 2 n 2 k i= k 0 1 @ n 1 X (d i + (1 d i )) 2 i A (dn + (1 d n)) 2 n 2 k X n 1 2 i (2 n 2 k ) i= k = (2 n 2 k ) (2 n 2 k ) = 0 22 / 57

Einer-Komplement-Darstellung Eigenschaften der Einer-Komplement-Darstellung 1 Symmetrischer Zahlenbereich: [ (2 n 2 k ), 2 n 2 k ] 2 Keine kanonische Darstellung der Zahlen aus dem Zahlenbereich! 3 Addition und Subtraktion sind effizient realisierbar. [wird später explizit nachgewiesen...] 23 / 57

Zweier-Komplement-Darstellung Definition Gegeben sei eine Festkommazahl d := d nd n 1... d 0 d 1... d k mit n + 1 Vor- und k Nachkommastellen (k, n 0). Interpretiert man d als Darstellung im Zweier-Komplement, so wird dies durch die Bezeichnung [d] 2 gekennzeichnet. Die Bitstelle d n repräsentiert wieder das Vorzeichen. Der Dezimalwert [d] 2 ergibt sich zu 0 X [d nd n 1... d 0 d 1... d k ] 2 := @ n 1 i= k d i 2 i 1 A dn 2 n. 24 / 57

Zweier-Komplement-Darstellung 25 / 57

Zweier-Komplement-Darstellung Lemma (Negation von Bitfolgen im Einer-Komplement) Seien d und d Bitfolgen. Zudem gehe d durch Komplementieren aller Bits aus d hervor. Dann gilt: [d ] 2 + 2 k = [d] 2 26 / 57

Zweier-Komplement-Darstellung Beweis: [d ] 2 + [d] 2 = 0 1 0 = @ n 1 X d i 2 i A dn 2 n + @ n 1 X i= k i= k 0 1 = @ n 1 X (d i + d i ) A 2i (dn + d n ) 2n = i= k X n 1 2 i 2 n i= k = (2 n 2 k ) 2 n = 2 k d i 2 i 1 A d n 2 n = [d ] 2 + 2 k = [d] 2 27 / 57

Zweier-Komplement-Darstellung Eigenschaften der Zweier-Komplement-Darstellung 1 Asymmetrischer Zahlenbereich: [ 2 n, 2 n 2 k ] 2 Kanonische Darstellung der Zahlen aus dem Zahlenbereich! 3 Addition und Subtraktion sind effizient realisierbar. 28 / 57

Addition in der Zweier-Komplement-Darstellung Die binäre Addition kann bei positiven Zahlen analog zur Schulmethode erfolgen! 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 Ü 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 S 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 In der Tat, es gilt 7+6=13. 29 / 57

Addition in der Zweier-Komplement-Darstellung Die Schulmethode funktioniert bei Verwendung der Zweier-Komplement auch wenn ein Operand oder beide Operanden negativ sind! 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 Ü 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 In der Tat, es gilt 7+(-6)=1. Ist das immer so oder nur in diesem Beispiel? 30 / 57

Addition in der Zweier-Komplement-Darstellung Definition (Formale Summe) Die formale Summe der Bitvektoren a = (a n, a n 1..., a 0, a 1,..., a k ) und b = (b n, b n 1,..., b 0, b 1,..., b k ) ist gegeben durch den Bitvektor s = (s n, s n 1,..., s 0, s 1,..., b k ), der durch s i = (a i + b i + c i 1 ) mod 2 mit c i = 8 < : 0 falls i = (k + 1) (a i + b i + c i 1 ) div 2 falls i k. definiert ist. 31 / 57

Addition in der Zweier-Komplement-Darstellung Theorem (Addition im Zweier-Komplement) Für alle Bitvektoren a = (a n, a n 1..., a 0, a 1,..., a k ) und b = (b n, b n 1,..., b 0, b 1,..., b k ) gilt: [a] 2 + [b 2 ] = [s] 2 2 n [a] 2 + [b] 2 2 n 2 k Beweisidee Mache eine Fallunterscheidung nach den Vorzeichen der Operanden. Fall a n = b n = 0 Zeige (beispielsweise durch Induktion) [a] 2 + [b] 2 = [0, s n 1,..., s k ] 2 + c n 1 2 n Dann gilt [a] 2 + [b] 2 = [s] 2 c n 1 = 0 0 [a] 2 + [b] 2 2 n 2 k 32 / 57

Addition in der Zweier-Komplement-Darstellung Theorem (Addition im Zweier-Komplement) Für alle Bitvektoren a = (a n, a n 1..., a 0, a 1,..., a k ) und b = (b n, b n 1,..., b 0, b 1,..., b k ) gilt: [a] 2 + [b 2 ] = [s] 2 2 n [a] 2 + [b] 2 2 n 2 k Beweisidee Mache eine Fallunterscheidung nach den Vorzeichen der Operanden. Fall a n = b n = 1 Aus dem ersten Fall und der Definition des Zweier-Kompplements folgt [a] 2 + [b] 2 = [0, a n 1,..., a k ] 2 + [0, b n 1,..., b k ] 2 2 n+1 = [0, s n 1,..., s k ] 2 + c n 1 2 n 2 n+1 Dann gilt wegen s n = c n 1 und 2 n 2 n+1 = 2 n [a] 2 + [b] 2 = [s] 2 c n 1 = 1 2 n [a] 2 + [b] 2 < 0 33 / 57

Addition in der Zweier-Komplement-Darstellung Theorem (Addition im Zweier-Komplement) Für alle Bitvektoren a = (a n, a n 1..., a 0, a 1,..., a k ) und b = (b n, b n 1,..., b 0, b 1,..., b k ) gilt: [a] 2 + [b 2 ] = [s] 2 2 n [a] 2 + [b] 2 2 n 2 k Beweisidee Mache eine Fallunterscheidung nach den Vorzeichen der Operanden. Fall a n + b n = 1 Aus dem ersten Fall und der Definition des Zweier-Kompplements folgt [a] 2 + [b] 2 = [0, a n 1,..., a k ] 2 + [0, b n 1,..., b k ] 2 2 n = [0, s n 1,..., s k ] 2 + c n 1 2 n 2 n = [0, s n 1,..., s k ] 2 (1 c n 1 ) 2 n = [0, s n 1,..., s k ] 2 s n 2 n = [s] 2 34 / 57

Multiplikation in der Zweier-Komplement-Darstellung Die binäre Multiplikation erfolgt bei positiven Zahlen wie in der Schulmethode! x 0 0 1 1 y 0 1 1 1 x y 0 0 0 1 1 shift 0 0 0 1 1 x y 1 0 0 1 1 add 0 1 0 0 1 shift 0 0 1 0 0 1 x y 2 0 0 1 1 add 0 1 0 1 0 1 shift 0 0 1 0 1 0 1 x y 3 0 0 0 0 add 0 0 1 0 1 0 1 In der Tat, es gilt 3 7 = 21. 35 / 57

Multiplikation in der Zweier-Komplement-Darstellung Blöcke von Nullen bzw. Blöcke von Einsen können übersprungen werden! Enthält ein Multiplikator y einen Nullblock der Länge k, so kann die Multiplikation durch einen arithmetischen Shift des Partialproduktes nach rechts um k Stellen beschleunigt werden. Die k Additionen mit Null entfallen. Enthält der Multiplikator y einen Block mit Einser von Stelle u bis Stelle v mit u < v, d. h....011...110... so können die zum Einsblock gehörigen v u + 1 Additionen der Multiplikation nach Schulmethode wegen [...011...110...] 2 = vx i=u 2 i = vx i=0 X u 1 2 i 2 j = 2 v+1 2 u durch eine Addition an der Stelle v + 1 und eine Subtraktion an der Stelle u ersetzt werden. j=0 36 / 57

Multiplikation in der Zweier-Komplement-Darstellung Arithmetische Operationen sind also nur an 0/1 bzw. 1/0 Übergängen im Multiplikator notwendig! Rechenvorschrift y i y i 1 Operation 0 0 shift 0 1 add and shift 1 0 sub and shift 1 1 shift mit y (k+1) = 0. 37 / 57

Multiplikation in der Zweier-Komplement-Darstellung Beispiel x y 3 y 2 y 1 y 0 Operation Zwischenergebnis 0010 0 1 1 0 0000 shift 0000 0 sub 0010 1110 0 shift 1111 00 shift 1111 100 add 0010 0001 100 shift 0000 1100 38 / 57

Multiplikation in der Zweier-Komplement-Darstellung Theorem (Satz von Booth) Das Verfahren von Booth ist korrekt, auch wenn einer oder zwei der Operanden negative Zahlen sind. Beweis: Wir betrachten im Verfahren von Booth an jeder Stelle die Differenz y i 1 y i und berechnen das Multiplikationsergebnis durch die Summe p = = = 0 @ X n 0 i= k (y i 1 y i ) 2 i 1 A [x]2 @ yn 2 n + y k 1 2 k + 0 n 1 @ X yn 2 n + = [y] 2 [x] 2 i= k n 1 X i= k y i 2 i 1 A [x]2 1 y i ( 2 i + 2 i+1 ) A [x]2 39 / 57

Vor- und Nachteile von Vorteile effizientes Rechnen möglich Nachteile keine ganz große und ganz kleine Zahlen darstellbar mangelnde Genauigkeit 40 / 57

Definition (Gleitkommazahl) Es seien n, i N. Eine Gleitkommazahl (engl.: Floating Point Number) d ist eine n-stellige Bitfolge, die als Dezimalzahl [d] interpretiert das folgende Format besitzt: Dabei bildet [d] := ( 1) S M 2 E S das Vorzeichen, M die Mantisse und E den Exponenten (inkl. dessen Vorzeichen) der dargestellten Zahl [d]. Vorzeichen, Exponent und Mantisse bestehen jeweils aus Teil-(Bit-)folgen von d, die zusammengesetzt gerade d ergeben. Das Vorzeichen wird durch ein einzelnes Bit repräsentiert, der Exponent durch eine Folge von i Bits. Die verbleibenden n i 1 Bits dienen zur Repräsentation der Mantisse, sodass sich folgende Aufteilung ergibt: d n 1 d n 2... d n (i+1) d n (i+2)... d 1 d 0 S i Bits Exponent E n i 1 Bits (vorzeichenlose) Mantisse M 41 / 57

Verteilung der Zahlen Was ist Information? In ist die Dichte der darstellbaren Zahlen in jedem Teilintervall von [ 2 n, 2 n 2 k ] gleich hoch! Bei ist die Anzahl der darstellbaren Zahlen in jedem Teilintervall [2 i, 2 i+1 ] (bzw. [ 2 i+1, 2 i ]) unabhängig von i. Die Dichte erhöht sich demnach exponentiell je näher das Teilintervall an der 0 liegt. 42 / 57

Zusammensetzung der Gleitkommazahlen nach IEEE 754 einfache Genauigkeit: 31 30... 23 22... 1 0 S 8 Bits Exponent E 23 Bits vorzeichenlose Mantisse M doppelte Genauigkeit: 63 62... 52 51... 1 0 S 11 Bits Exponent E 52 Bits vorzeichenlose Mantisse M 43 / 57

normalisierte Gleitkommazahlen Die Gleitkommadarstellung, wie sie bis jetzt bei uns eingeführt worden ist, ist nicht kanonisch, d. h. es gibt für eine Zahl mehrere Darstellungen, auch wenn man sich entweder auf einfache Genauigkeit oder doppelte Genauigkeit beschränkt, z. B. [0 00000001 00000000000000000000010] s = ( 1) 0 2 2 1 = 4 = ( 1) 0 1 2 2 = [0 00000010 0000000000000000000001] s Eindeutigkeit erhält man, indem man die Menge der erlaubten Darstellungen einschränkt normalisierte Gleitkommazahlen 44 / 57

normalisierte Gleitkommazahlen einfacher Genauigkeit Um Kanonizität zu erreichen, betrachtet man normalisierte Gleitkommazahlen, bei denen der Wert der Mantisse jeweils in dem Intervall [1, 2) liegt, d. h. die Mantisse hat als Wert 1,... Hieraus folgt Eindeutigkeit der Darstellung. Zudem braucht die 1 vor dem Komma nicht gespeichert zu werden, da ja jede Darstellung an dieser Position eine 1 stehen hat. Definition (normalisierte Gleitkommazahl) Es sei n := 32 und d := se 7... e 0 m 22... m 0 eine Bitfolge der Länge n. Zudem sei e 7... e 0 {00000000, 11111111}. Wird d als normalisierte Gleitkommazahl nach IEEE 754 interpretiert, so repräsentiert d die Dezimalzahl [d] s mit 0 X 23 [d] s := ( 1) s @ 1 + Es gilt hierbei BIAS := 127 i= 1 m 23+i 2 i 1 A P7i=0! e 2 i 2 i BIAS. 45 / 57

normalisierte Gleitkommazahlen doppelter Genauigkeit Um Kanonizität zu erreichen, betrachtet man normalisierte Gleitkommazahlen, bei denen der Wert der Mantisse jeweils in dem Intervall [1, 2) liegt, d. h. die Mantisse hat als Wert 1,... Hieraus folgt Eindeutigkeit der Darstellung. Zudem braucht die 1 vor dem Komma nicht gespeichert zu werden, da ja jede Darstellung an dieser Position eine 1 stehen hat. Definition (normalisierte Gleitkommazahl) Es sei n := 64 und d := se 10... e 0 m 51... m 0 eine Bitfolge der Länge n. Zudem sei e 10... e 0 {00000000000, 11111111111}. Wird d als normalisierte Gleitkommazahl nach IEEE 754 interpretiert, so repräsentiert d die Dezimalzahl [d] d mit 0 X 52 [d] d := ( 1) s @ 1 + Es gilt hierbei BIAS := 1023 i= 1 m 52+i 2 i 1 A P10! 2 i=0 e i 2 i BIAS. 46 / 57

Definition (normalisierte Gleitkommazahl) 0 X 23 [d] s := ( 1) s @ 1 + i= 1 m 23+i 2 i 1 A P7i=0! e 2 i 2 i BIAS. Es gilt hierbei BIAS := 127 Example Gegeben sei die normalisierte Gleitkommazahl a 1 : a 1 := 1 1000 0001 1100 0000 0000 0000 0000 000 Der dezimale Wert [a 1 ] s von a 1 lässt sich gemäß obiger Definition wie folgt ermitteln. [a 1 ] s := ( 1) 1 (1 + (2 1 + 2 2 )) 2 27 +2 0 127 = ( 1) (1 + 0, 5 + 0, 25) 2 128+1 127 = 1, 75 2 2 = 7 47 / 57

Example Gesucht ist die 32-Bit Gleitkommazahl a 2 der Dezimalzahl mit [a 2 ] s = 0, 625: 0, 625 ist negativ Vorzeichenbit = 1 Umwandlung in eine Binärzahl: 0, 625 10 = 0, 101 2 Normalisierung: 0, 101 2 = 1, 01 2 2 1 Bitfolge zur Repräsentation der Mantisse M = 0100 0000 0000 0000 0000 000. Berechnung des Exponenten : 2 1 = 2 126 127 = 2 26 +2 5 +2 4 +2 3 +2 2 +2 1 127 Bitfolge zur Repräsentation des Exponenten E = 0111 1110 Gleitkommadarstellung: a 2 = 1 0111 1110 0100 0000 0000 0000 0000 000 48 / 57

denormalisierte Gleitkommazahlen Problem Die Null kann nicht als normalisierte Gleitkommazahl dargestellt werden!!! = Einführung von denormalisierten Zahlen Definition Es sei n := 32 und d := se 7... e 0 m 22... m 0 eine Bitfolge der Länge n mit e 7... e 0 := 00000000. Dann stellt d eine denormalisierte Gleitkommazahl nach dem Standard IEEE 754 dar und repräsentiert die Dezimalzahl [d] s mit 0 X [d] s := ( 1) s @ 23 i= 1 m 23+i 2 i 1 A 2 126!. Hierdurch wird der Bereich um die Null äquidistant partitioniert! Die Darstellung der 0 ist nicht eindeutig! 49 / 57

denormalisierte Gleitkommazahlen Problem Die Null kann nicht als normalisierte Gleitkommazahl dargestellt werden!!! = Einführung von denormalisierten Zahlen Definition Es sei n := 32 und d := se 10... e 0 m 22... m 0 eine Bitfolge der Länge n mit e 10... e 0 := 00000000000. Dann stellt d eine denormalisierte Gleitkommazahl nach dem Standard IEEE 754 dar und repräsentiert die Dezimalzahl [d] d mit 0 X [d] d := ( 1) s @ 52 i= 1 m 52+i 2 i 1 A 2 1022!. Hierdurch wird der Bereich um die Null äquidistant partitioniert! Die Darstellung der 0 ist nicht eindeutig! 50 / 57

Darstellung von + und Definition Es seien d := 0 1111 1111 0000 0000 0000 0000 0000 000 e := 1 1111 1111 0000 0000 0000 0000 0000 000 Dann stellt nach dem Standard IEEE 754 d den Wert + und e den Wert dar. 51 / 57

IEEE 754 im Überblick Genauigkeit einfach doppelt #Vorzeichen-Bits 1 1 #Exponenten-Bits 8 11 #Mantissen-Bits 23 52 #Bitstellen insgesamt 32 64 BIAS 127 1023 Exponentenbereich [ 126, 127] Z [ 1022, 1023] Z normalisierte Zahl mit max. Betrag (1 2 24 ) 2 128 (1 2 53 ) 2 1024 normalisierte Zahl mit min. Betrag 2 126 2 1022 denormalisierte Zahl mit max. Betrag (1 2 23 ) 2 126 (1 2 52 ) 2 1022 denormalisierte Zahl mit min. Betrag 2 149 2 1074 52 / 57

Addition von Gleitkommazahlen Berechne die normalisierte Gleitkommadarstellung von [d 1 ] s + [d 2 ] s mit [d 1 ] s := ± (1 + M 1 ) 2 E 1 127, [d 2 ] s := ± (1 + M 2 ) 2 E 2 127. Fallunterscheidung Falls E 1 = E 2 : berechne ± (1 + M 1 ) + ± (1 + M 2 ) normalisiere die Darstellung (± (1 + M 1 ) + ± (1 + M 2 )) 2 E 1 127 Falls E 1 > E 2 : Angleichung der Exponente der kleinere wird angepasst [d 2 ] s = ± (1 + M 2 ) 2 E 2 E 1 2 E 1 127 {z } neue Mantisse Addition der Mantissen Normalisierung des Ergebnisses 53 / 57

Addition von Gleitkommazahlen Example Es sei [d 1 ] s = 1, 101 2 3 und [d 2 ] s = 1, 011 2 4. Der Exponent von d 2 ist anzupassen [d 2 ] s := 1, 011 2 4 = (1, 011 2 1 ) 2 3 = 0, 1011 2 3 Die Mantissen sind aufzuaddieren: [sum] s = (1, 101 + 0, 1011) 2 3 = 10, 0101 2 3 Das Ergebnis ist zu normalisieren [sum] s = 10, 0101 2 3 = (1, 00101 2 1 ) 2 3 = 1, 00101 (2 1 2 3 ) = 1, 00101 2 2 54 / 57

Multiplikation von Gleitkommazahlen Berechne die normalisierte Gleitkommadarstellung von [d 1 ] s [d 2 ] s mit [d 1 ] s := ( 1) S1 (1 + M 1 ) 2 E 1 127, [d 2 ] s := ( 1) S2 (1 + M 2 ) 2 E 2 127. Es gilt: [p] s = [d 1 ] s [d 2 ] s = ( 1) S1 (1 + M 1 ) 2 E 1 127 ( 1) S2 (1 + M 2 ) 2 E 2 127 = ( 1) S 1 S2 ((1 + M 1 ) (1 + M 2 )) 2 (E 1 127)+(E 2 127). Die drei Bestandteile der Gleitkommazahlen d 1 und d 2 können also, bis auf die abschließende Normalisierung des Ergebnisses, getrennt voneinander behandelt und verknüpft werden. 55 / 57

Multiplikation von Gleitkommazahlen Zwei Details sind also zu berücksichtigen: 1 Das Ergebnis muss in der Regel normalisiert werden! 2 Der Exponent ergibt sich nicht direkt aus der in der Darstellung abgespeicherten Bitfolge, sondern ergibt sich erst durch Subtraktion des BIAS von der dargestellten Binärzahl! Gesucht ist also die binäre Darstellung τ von (E 1 BIAS) + (E 2 BIAS) + BIAS: (E 1 BIAS) + (E 2 BIAS) + BIAS = = 7X i=0 7X e d1,i 2 i! BIAS e d1,i 2 i! +! + 7X i=0 i=0 i=0 = [e d1,7... e d1,0] + [e d2,7... e d2,0] BIAS. 7X e d2,i 2 i! BIAS e d2,i 2 i! BIAS! + BIAS 56 / 57

Stad Letzebuerg [http://www.ludgerusschule.de/] Wehrmauern erinnern an die Festung Luxemburgs. Luxemburg war eine der berühmtesten und am schwersten einnehmbaren Festungen Westeuropas und wurde zu Recht Gibraltar des Nordens genannt. In der französischen Zeit (1684-1697) wurde unter dem Hauptkommissar der Festungsanlagen und Festungsbaumeister Ludwigs XIV., Sébastien le Prestre de Vauban, die Feste Luxemburg besonders stark ausgebaut. Im Anschluss an den Neutralitätsvertrag vom 11. Mai 1867 musste Luxemburg seine Festung schleifen. 57 / 57