2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen



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

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

Einführung in die Informatik I

2 Darstellung von Zahlen und Zeichen

Technische Informatik - Eine Einführung

Binärdarstellung von Fliesskommazahlen

Grundlagen der Informatik

Vertiefungsstoff zum Thema Darstellung von Zahlen

Computerarithmetik ( )

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Binäre Gleitkommazahlen

Zeichen bei Zahlen entschlüsseln

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

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

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

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

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

Zahlendarstellungen und Rechnerarithmetik*

Informationsdarstellung im Rechner

Zahlensysteme: Oktal- und Hexadezimalsystem

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

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

Grundstrukturen: Speicherorganisation und Zahlenmengen

Primzahlen und RSA-Verschlüsselung

2. Negative Dualzahlen darstellen

Inhalt: Binärsystem 7.Klasse - 1 -

Zahlensysteme Seite -1- Zahlensysteme

Das Rechnermodell - Funktion

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

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

Binäre Division. Binäre Division (Forts.)

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

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

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

1 Mathematische Grundlagen

Übungen zu Informatik 1

Grundlagen der Technischen Informatik. 4. Übung

Information in einem Computer ist ein

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 09/10

Grundlagen der Informatik (BSc) Übung Nr. 5

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring

Grundlagen der Informatik I Informationsdarstellung

Das Maschinenmodell Datenrepräsentation

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Einführung in die Algebra

1. Stellenwerte im Dualsystem

Lineare Gleichungssysteme

2 Rechnen auf einem Computer

a) Da die Zahlen im IEEE-32Bit-Format dargestellt werden sollen, ist der Bias = 127.

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

Numerische Datentypen. Simon Weidmann

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

7 Rechnen mit Polynomen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12

Daten verarbeiten. Binärzahlen

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

3 Rechnen und Schaltnetze

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Numerisches Programmieren, Übungen

Informationsblatt Induktionsbeweis

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Plotten von Linien ( nach Jack Bresenham, 1962 )

Repetitionsaufgaben Wurzelgleichungen

, WS2012 Übungsgruppen: Mo.,

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Modul 114. Zahlensysteme

Algorithmen zur Integer-Multiplikation

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Repräsentation von Daten Binärcodierung ganzer Zahlen

Einführung in die Programmierung

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Im Original veränderbare Word-Dateien

Binär- und Hexadezimal-Zahl Arithmetik.

Leitung 1 Leitung

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Grundlagen der Informatik Übungen 1.Termin

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Das Mathematik-Abitur im Saarland

Lineare Differentialgleichungen erster Ordnung erkennen

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

Theoretische Informatik SS 04 Übung 1

Zahlensysteme Das 10er-System

1 topologisches Sortieren

Teil II. Schaltfunktionen

Konzepte der Informatik

1 Einführung. 1.1 Analog - Digital Unterscheidung

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Aufgaben zu Stellenwertsystemen

Zahlensysteme. Formale Methoden der Informatik WiSe 2010/2011 Folie 1 (von 71)

Die Zahlensysteme. Bommhardt. Das Vervielfältigen dieses Arbeitsmaterials zu nichtkommerziellen Zwecken ist gestattet.

Transkript:

2.0 Zahlendarstellung, Konvertierungsalgorithmen und arithmetische Algorithmen Ziele dieses Kapitels Kennenlernen wesentlicher Zahlensysteme und die Konvertierung von Zahlen zwischen unterschiedlichen Zahlensystemen Repräsentation von positiven und negativen Zahlen in einem Computer Addition und Subtraktion im dualen ( binären ) Zahlensystem Erfassen von rationalen Zahlen mit der Festkomma- und Gleitkommadarstellung Kennenlernen der IEEE-754-Gleitkommaformate und des Extendedprecision-Formats von Intel Seite 2-0

2.1 Zahlensysteme und Konvertierungsalgorithmen Informationen können in unterschiedlicher Art vorliegen. In unserer natürlichen Umgebung liegen Informationen häufig als analoge Werte, als analoge Signale bezeichnet, vor, z. B. die Temperatur in Abhängigkeit von der Zeit. Hierbei sind sowohl der Temperaturwert als auch der Zeitwert kontinuierlich, wie in Abbildung 2.1 dargestellt ist. Digitale Rechner, und das sind heutzutage nahezu alle Rechner, arbeiten dagegen mit digitalen Signalen. Diese Signale sind sowohl im Wert als auch in der Zeit diskret, wie ebenfalls in Abbildung 2.1 dargestellt ist. Damit Informationen aus analogen Signalen mit digitalen Rechnern verarbeitet werden können, müssen diese also zuerst digitalisiert werden. Dies erfolgt technisch in einem Analog- zu Digital-Konverter ( ADC ). Das Ergebnis einer solchen Konvertierung ist in Abbildung 2.1 dargestellt. Mit einem digitalen Rechner können diese Daten dann digital verarbeitet, z. B. gefiltert werden. Eventuell ist dann auch noch eine Rückwandlung vom digitalen Signal in ein analoges Signal, in einem Digital- zu Analog-Konverter, wie ebenfalls in Abbildung 2.1 gezeigt, möglich. Ein anderes Beispiel, wo zunächst analoge Informationen vorliegen, ist ein Foto auf Fotopapier. Wenn dieses dann eingescannt wird, liegen die Bildinformationen digital vor. Das analoge Foto wurde digitalisiert d. h. es liegt dann ein digitales Bild vor. Auch eine digitale Kamera wandelt analoge Bilder unserer Umgebung in digitale Bilder um, und speichert diese. Damit also Informationen in einem digitalen Rechner verarbeitet werden können, müssen sie in eine Form gebracht werden, die der Rechner verarbeiten kann, d.h. sie müssen binär, mit 0 und 1, codiert werden. Ein üblicher digitaler Rechner arbeitet nämlich mit Spannungspegeln, die 0 entspricht dabei einem niedrigen Spannungspegel L ( Low ), und die 1 entspricht dabei einem hohen Spannungspegel H ( High ). Da Zahlen bei der Erfassung von Informationen eine wichtige Rolle spielen, sind diese entsprechend zu kodieren. Zahlensysteme bei denen nur zwei verschiedene Ziffern, hier z. B. 0 und 1 benutzt werden, heißen Dualsystem ( vom lateinischen dualis = zwei enthaltend ) manchmal auch Zweier- oder Binärsystem genannt. Das gebräuchlichste Zahlensystem im Alltag ist das Dezimalsystem. Seite 2-1

Abbildung 2.1: Darstellung verschiedener Signaltypen anhand eines zeitlichen Temperaturverlaufes Seite 2-2

Hier werden zehn unterschiedliche Ziffern, 0 bis 9 ( dezi = zehn ) verwendet um Zahlen darzustellen. In der Technik sind auch noch das Oktal- ( acht ) und Hexadezimal- ( sechszehn ) System im Gebrauch, weil sie eine besonders einfache Konvertierung ins Dualsystem erlauben. Bei all diesen Zahlensystemen spielt für die Wertermittlung einer Zahl nicht nur die verwendete Ziffer sondern auch deren absolute Position eine Rolle. Daher handelt es sich bei diesen Zahlensystemen um Stellenwertsysteme, kurz auch Stellensysteme genannt. Der Wert einer Dezimalzahl mit den Ziffern a n-1,.a 0 mit 0 a i < b = 10 wird z. B. auf folgende Art berechnet. Beim Dezimalsystem handelt es sich um ein spezielles Stellenwertsystem zur Basis b = 10. Diese Basis lässt sich durch eine beliebige natürliche Zahl b ersetzen, so dass sich Stellenwertsysteme zu unterschiedlichen Basen ergeben. Allgemein lässt sich für eine Zahl zur Basis b schreiben mit 0 a i < b. Diese Darstellung wird auch als b-adische Darstellung von Zahlen bezeichnet. Neben dem uns vertrauten Dezimalsystem sind für die Technische Informatik folgende drei Zahlensysteme noch von Bedeutung: Binär- oder Dualsystem Im Binärsystem werden die beiden Ziffern 0 und 1 für die Zahlendarstellung verwendet. Daher handelt es sich um ein Stellenwertsystem zur Basis b = 2. Intern arbeiten moderne Rechner nahezu ausnahmslos mit dem Binärsystem, so dass dieses für die Technische Informatik am wichtigsten ist. Seite 2-3

Oktalsystem Dem Oktalsystem liegt die Basis b = 8 zu Grunde. Zur Darstellung werden die Ziffern 0 bis 7 verwendet. Da sich die Basis b = 8 als eine Zweierpotenz b = 2 3 darstellen lässt, kann eine einzige Oktalziffer exakt mit drei Bits der Binärdarstellung dargestellt werden. Beispiel: Hexadezimalsystem Im Hexadezimalsystem werden alle Zahlen zur Basis b = 16 dargestellt. Zur Darstellung werden die Ziffern 0 bis 9 und die Buchstaben A bis F verwendet. Da die Basis b = 16 = 2 4 ist, repräsentiert jede Hexadezimalziffer exakt 4 Bits in der Binärdarstellung: Beispiel: Zur Angabe der Basis einer Ziffernfolge wird die Suffix-Notation verwendet, d. h. die Basis des zu Grunde liegenden Zahlensystems wird der Ziffernfolge als Ergänzung angehängt. Beispiele: Die b-adische Zahlendarstellung lässt sich auch auf Rationale Zahlen, d.h. auf Zahlen mit Nachkommaanteil anwenden. Dabei werden die Stellen der Ziffern nach dem Komma mit negativem Exponenten versehen. Die Ziffernfolge ( a n-1, a 0, a -1,.a -m ) b repräsentiert dann die folgende Zahl: Seite 2-4

Konvertierung zwischen Zahlensystemen Es sei z eine beliebige positive Kommazahl und b sei eine beliebige Basis. Um z bezüglich b aus zu drücken müssen wir diese Zahl in die Form bringen. Diese Gleichung separieren wir zunächst in einen Vorkommaund einen Nachkommanteil. Für beide Formelanteile sind nun die Koeffizienten a 0,.a n-1 bzw. a -m, a -1 zu ermitteln. Zur Ermittlung der Koeffizienten a 0,.a n-1 teilen wir den Vorkommateil z V durch die Basis b. Als Rest ergibt sich der gesuchte Koeffizient a 0. Mit Rest ist dabei der Anteil der ursprünglichen Zahl z V gemeint, der sich nicht mehr ganzzahlig durch b teilen lässt. Bei der Division ergibt sich nämlich als Quotient a 0 /b. Da aber generell a i < b ist, folgt dass dieser Quotient kleiner als 1, also keine ganze Zahl mehr ist, und a 0 somit als ein ganzzahliger Rest auf zu fassen ist. Der erhaltene Algorithmus zur Konvertierung des Vorkommaanteils und ein Beispiel ist nachfolgend graphisch dargestellt. Seite 2-5

Zur Ermittlung der Koeffizienten a -1, a -m des Nachkommaanteils ist dieser mit der Basis b zu multiplizieren. a -1 ist also die Differenz zwischen dem Produkt z n b und der Summe des Summenausdrucks auf der rechten Seite der Gleichung. Diese Summe ist kleiner als 1, d.h. a -1 gibt den Vorkommaanteil des erhaltenen Produktes an. Zum Erhalt der weiteren Koeffizienten wird das Verfahren mit der erhaltenen Summe fortgesetzt bis die Summe null wird. Der erhaltene Algorithmus zur Konvertierung des Nachkommaanteils einer Zahl und ein Beispiel dazu ist nachfolgend graphisch dargestellt. Bei der Konvertierung von einem Zahlensystem in ein anderes ist Vorsicht geboten, denn nicht alle Zahlen lassen sich in allen Zahlensystemen mit einer endlichen Ziffernfolge darstellen. Beispiel: Umwandlung der Dezimalzahl 0,1 ins Binärsystem Ergebnis: ( 0,1 ) 10 = ( 0,0001100110011 ) 2 d. h. für die Dezimalzahl 0,1 ergibt sich im Binärsystem eine unendlich periodische Darstellung. In der Praxis führt dies zu Rundungsfehlern, die unter Umständen gravierende Auswirkungen haben können. Seite 2-6

2.2 Rechnerinterne Zahlenformate und Addier- und Subtrahieralgorithmen Nahezu alle heute eingesetzten Computer arbeiten intern mit dem binären Zahlensystem. Positive Zahlen können einfach dadurch repräsentiert und gespeichert werden, indem jede Ziffer 0 oder 1 rechnerintern durch ein sogenanntes Bit dargestellt wird. Dabei werden 8 Bit zu einem Byte zusammengefasst. Aus der Anzahl der Bytes, in der Regel eine Zweierpotenz 2 n ( n = positive ganze Zahl ), ergibt sich dann der Zahlenbereich, den ein Computer darstellen kann. In der nachfolgenden Graphik sind einige Bitbreiten und der dazugehörige Wertebereich, den sie abdecken, dargestellt. Seite 2-7

Die Speicherordnung innerhalb von Computern legt fest in welcher Reihenfolge die Bytes einer Zahl abgespeichert werden. Danach lassen sich moderne Mikroprozessoren in zwei Klassen einteilen. Erfolgt die Speicherung derart, dass mit dem niederwertigsten Byte begonnen wird, dann spricht man von einer Little- Endian-Architektur. Wird dagegen bei der Speicherung mit dem höherwertigsten Byte begonnen, so spricht man von einer Big-Endian-Architektur. Abbildung 2.2: Vergleich der Byte-Anordnung bei der Little- Endian und Big- Endian Architektur von Mikroprozessoren Während sich die Repräsentation und Speicherung von ganzen, positiven Zahlen einfach gestaltet, ist die rechnerinterne Repräsentation von negativen Zahlen komplizierter. Dazu werden häufig drei unterschiedliche Zahlenformate, nämlich 1.) die Vorzeichenbitdarstellung 2.) die Einerkomplementdarstellung 3.) die Zweierkomplementdarstellung verwendet. Diese drei Zahlenformate sind hinsichtlich dreier Gesichtspunkte zu untersuchen, die für einen Computer sehr wichtig sind. Seite 2-8

1.) Das Verhalten bei arithmetischen Operationen Die Durchführung von arithmetischen Operationen gehört zu den Hauptaktivitäten eines Computers. Daher sollten Zahlenformate gewählt werden, die hinsichtlich arithmetischer Operationen am wenigsten Rechenaufwand haben. 2.) Die Eineindeutigkeit Ein Zahlenformat ist eineindeutig, wenn jede Zahl genau einem Bitmuster und umgekehrt jedes Bitmuster einer Zahl entspricht. Bei eineindeutigen Zahlenformaten sind Gleichheitstests einfach durch zu führen. Zudem nutzen diese Zahlenformate die Anzahl der möglichen Bitmuster optimal aus, da sie nicht redundant sind, d. h. eine Zahl weißt keine zwei unterschiedlichen Darstellungen auf. 3.) Die Symmetrie der Zahlenformate Zahlenformate heißen symmetrisch, wenn mit der Zahl z stets auch die Zahl z dargestellt werden kann. Vorzeichenbitdarstellung von negativen Zahlen Negative Zahlen lassen sich einfach darstellen, wenn ein zusätzliches Vorzeichenbit eingeführt wird, das der eigentlichen Zahl vorangestellt wird. Ist dieses Bit 0 so handelt es sich um eine positive Zahl, ist dieses Bit 1 dann liegt eine negative Zahl vor. Zahlendarstellungen lassen sich graphisch am sogenannten Zahlenstrahl darstellen. Auf der horizontalen Achse wird dabei das binäre Bitmuster nach aufsteigendem Wert geordnet aufgetragen. Auf der vertikalen Achse wird der Wert der dazugehörigen Zahl aufgetragen. Der Zahlenstrahl für Bitcodierungen mit 4 Bit einschließlich Vorzeichenbit ist in Abbildung 2.3 dargestellt. Aus der Darstellung des Zahlenstrahls ist zu entnehmen, dass die Zahlendarstellung symmetrisch ist. Jedoch ist sie nicht eineindeutig, da die Null zwei Codierungswerte besitzt. +0 = 000 000 ; -0 = 100 000 Leider erhält man mit dieser Zahlendarstellung bei arithmetischen Operationen falsche Ergebnisse, wenn das Vorzeichenbit wie ein normales Bit behandelt wird. Die binäre Addition wird im Prinzip genau so durchgeführt wie im dezimalen Zahlensystem. Da nur zwei unterschiedliche Ziffern vorliegen ist sie sogar noch einfacher. Seite 2-9

Abbildung 2.3: Darstellung des Zahlenstrahls für 4 Bitzahlen mit Vorzeichencodierung Die binäre Addition zweier Zahlen erfolgt so wie in nachfolgender Tabelle mit Beispiel dargestellt. Die Addition startet mit der niederwertigsten Stelle, also hier rechts. Ergibt sich bei dieser Stelle ein Übertrag, so ist dieser bei der nächsthöherwertigen Stelle dazu zu zählen. Dieses Verfahren ist fort zu führen bis alle Stellen aufaddiert sind. Wendet man diese Vorgehensweise an um Zahlen mit Vorzeichenbits zu addieren, und behandelt die Vorzeichenbits wie normale Bits, so erhält man falsche Ergebnisse wie nachfolgende Beispiele zeigen. Seite 2-10

Um richtige Ergebnisse zu erhalten, muss das Vorzeichenbit explizit interpretiert werden, und dann muss ein negativer Zahlenwert, nach den Subtraktionsregeln, subtrahiert werden, wie in nachfolgendem Beispiel dargestellt. Im Prinzip ist dabei genau so vor zu gehen wie im dezimalen Zahlensystem. Ergibt sich an einer Stelle ein negativer Wert, so ist an dieser Stelle der Bitwert der nächsthöheren Stelle zu leihen. Bei der Subtraktion an der nächsten Stelle ist dieser Wert dann ab zu ziehen, da er ja bereits an der niederwertigen Bitposition verrechnet wurde. Einerkomplementdarstellung von negativen Zahlen Eine andere Möglichkeit negative Zahlen dar zu stellen, besteht darin eine Zahl z zu negieren indem das Bitmuster der Zahl vollständig invertiert wird. Seite 2-11

Nachfolgend ist der entsprechende Zahlenstrahl für einen Zahlenbereich von 4 Bit dargestellt. Abbildung 2.4: Darstellung des Zahlenstrahls für 4 Bit Zahlen in der Einerkomplimentdarstellung Das erhaltene Zahlenformat ist symmetrisch. Aber auch bei dieser Darstellung existiert das Problem der Doppelbelegung der Null. +0 = 000 000 ; -0 = 111 111 Jedoch gestaltet sich die Addition von positiven und negativen Zahlen wie üblich, wenn man zusätzlich die Übertragsadditionsregel anwendet. Im einzelnen ist bei der Addition in drei Schritten vor zu gehen. 1.) Ausführen der gewöhnlichen Binäraddition 2.) Aufaddieren des Übertrags ( Übertragsadditionsregel ) 3.) Streichen verbleibender Überträge Seite 2-12

Die Übertragsadditionsregel ist dabei deshalb notwendig, weil die Zahl Null eine Doppeldarstellung besitzt. Wie der nachfolgenden Zahlenstrahldarstellung zu entnehmen ist, besitzt der Zahlenstrahl, wenn man ihn periodisch erweitert, beim Übergang von den negativen zu den positiven Zahlen, wegen der Doppeldarstellung der Null, einen Versatz. Wird nun zu einer negativen Zahl eine positive Zahl dazugezählt so ergibt sich, bei einem positiven Ergebnis, eine Zahl, die um eins zu niedrig ist. Daher muss dann eine 1 dazugezählt werden. Zweierkomplementdarstellung Die Zweierkomplementdarstellung ergibt sich aus der Einerkomplementdarstellung dadurch, dass zunächst das Einerkomplement gebildet wird, und dann noch eine 1 dazugezählt wird. Eine andere formal einfache Möglichkeit das Zweierkomplement zu bilden besteht darin, das Bitmuster vom niederwertigen Ende aus bis zur ersten 1 bei zu behalten und die restlichen Bits zu invertieren. Wie sich aus der nachfolgenden Zahlenstrahldarstellung ergibt, ist dieses Zahlenformat eineindeutig. Die Null besitzt nur noch eine Darstellung. Dadurch entfällt auch die Übertragsadditionsregel der Einerkomplementdarstellung. Der Zahlenstrahldarstellung ist auch zu entnehmen, dass dieses Zahlenformat nicht mehr symmetrisch ist. Die Codierung der negativen Null bei der Einerkomplementdarstellung wird dazu verwendet um -1 zu codieren. Im negativen Bereich gibt es daher eine Zahl mehr als im positiven Bereich. Seite 2-13

Abbildung 2.5: Darstellung des Zahlenstrahls für 4 Bit Zahlen in der Zweierkomplementdarstellung Der Zahlenbereich einer n Bit breiten Dualzahl liegt damit zwischen 2 n-1 bis + 2 n-1-1. In der Zweierkomplementdarstellung können vorzeichenbehaftete Zahlen, wie der nachfolgenden Darstellung des erweiterten Zahlenstrahls zu entnehmen ist, nach den üblichen Regeln der Binärarithmetik addiert werden. Die Subtraktion lässt sich dabei auf die Addition negativer Zahlen zurückführen. Kommt es bei der Addition zu einem Übertrag, der aus dem Zahlenbereich hinausführt, so wird dieser ersatzlos gestrichen. Da der Zahlenstrahl beim Übergang vom negativen in den positiven Bereich durchgängig ist muss keine 1 addiert werden. Seite 2-14

Beispiele zur Addition im Zweierkomplement: Nachfolgend soll nochmals plausibel gemacht werden, wieso das Zweierkompliment zur Darstellung negativer Zahlen geeignet ist. Addiert man zu einer Dualzahl A ihr Zweierkompliment, so ergibt ich ohne Übertrag: Diese Erkenntnis kann dazu genutzt werden um die Subtraktion bei Dualzahlen auf die Addition zurückzuführen. Allgemein gilt somit für die Addition zweier Dualzahlen bei Verwendung der Zweierkomplimentdarstellung der negativen Zahlen, hier n = 4: Seite 2-15

Bei arithmetischen Operationen kann das Ergebnis den darstellbaren Wertebereich überschreiten. Das Ergebnis ist dann eine nicht korrekte Zahl, die außerhalb der Bereichsgrenzen liegt, es entsteht ein sogenannter Überlauf oder Overflow, der von der ausführenden Hardware angezeigt werden muss. Je nach dem Wert der Überträge Ü 4 und Ü 3 bzw. Ü n und Ü n-1 ergibt sich eine Bereichsüberschreitung. Es sind zwei Fälle zu unterscheiden: 1.) Bei vorzeichenlosen Zahlen liegt eine Bereichsüberschreitung vor, wenn Ü n = 1 ist. 2.) Bei vorzeichenbehafteten Zahlen liegt eine Bereichsüberschreitung vor, wenn entweder Ü n oder Ü n-1 den Wert 1 annehmen, also: Bereichsüberschreitung = ( Ü n xor Ü n-1 ). Bereichsüberschreitungen lassen sich, neben dem Zahlenstrahl auch gut im Zahlenkreis verdeutlichen, wie in nachfolgender Abbildung 2.6 dargestellt ist. Abbildung 2.6: Darstellung der Bereichsgrenzen im Zahlenkreis für 4-stellige Dualzahlen bei Verwendung der Zweierkomplimentdarstellung für die negativen Zahlen Seite 2-16

Festkommazahlen Mit der Festkommadarstellung können rationale Zahlen einfach erfasst werden. Genau wie bei der Vorzeichenbitdarstellung wird ein Vorzeichenbit Vz eingeführt um zu beschreiben, ob eine Zahl negativ, Vz = 1, oder positiv, Vz = 0, ist. Die restlichen Bits, Mantisse M, genannt, werden dazu verwendet, um die Nachkommastellen der darzustellenden Zahl zu codieren. Also besitzt das Festkommaformat für eine n = 16 Bit breite Zahl folgende Form: Der Wert einer n Bit breiten Festkommazahl lässt sich dann wie folgt berechnen: Dieses Format erlaubt die Repräsentation von Zahlen aus dem offenen Intervall ] -1, + 1 [. Liegt ein größerer Zahlenbereich vor, so ist dieser entsprechend auf dieses Intervall ab zu bilden indem alle Zahlen durch die größte vorliegende Zahl dividiert werden. Das Zahlenintervall ] -1, + 1 [ besitzt die Eigenschaft bezüglich der Multiplikation abgeschlossen zu sein, d. h. eine Multiplikation zweier Zahlen führt nicht aus dem Zahlenbereich. Für die größte und kleinste Zahl, die mit einer n Bit breiten Festkommazahl dargestellt werden kann gilt: z max = 0111 111 = 1-2 -(n-1) z min = 1111 111 = -1 + 2 -(n-1) Der darstellbare Zahlenbereich ist symmetrisch, so dass z min = - z max gilt. Für den Abstand zweier benachbarter Zahlen z 1 und z 2 gilt: z 2 z 1 = 2 -(n-1). Dieser Abstand ist im gesamten Zahlenbereich konstant. Das Festkommaformat gehört daher in die Klasse der äquidistanten Zahlenformate. Dieses Zahlenformat kommt daher bei Berechnungen zum Einsatz, wo im gesamten Zahlenbereich eine gleichbleibende Genauigkeit Seite 2-17

notwendig ist. Dies ist z. B. bei vielen digitalen Signalprozessoren (DSP s) der Fall. Die meisten anderen Prozessoren verwenden die Gleitkommaarithmetik, dessen Zahlenformat im folgenden behandelt wird. Gleitkommazahlen Bei der Gleitkommadarstellung wird die Festkommadarstellung um einen Exponenten E erweitert. Beträgt die Bitbreite der Mantisse m, so berechnet sich der Wert einer Gleitkommazahl folgendermaßen: Mit Hilfe des Exponenten kann man das Komma der dargestellten Zahl gleiten lassen, d.h. es kann verschoben werden. Daher resultiert der Name dieses Formates. Im Allgemeinen ergibt sich bei der Multiplikation mit dem Term 2 E eine Verschiebung des Kommas um E Stellen, wenn E> 0 nach rechts, und wenn E < 0 nach links. Bei Dualzahlen bewirkt die Verschiebung des Kommas um eine Stelle nach rechts eine Multiplikation mit dem Faktor 2. Gleitkommazahlen werden in Anlehnung an die englische Bezeichnung floating point numbers im Deutschen auch Gleitkommazahlen oder Fließkommazahlen genannt. Während die Mantisse die Auflösungsgenauigkeit des Zahlenformats festlegt, beeinflusst der Exponent vor Allem die Intervallgrenzen und bestimmt damit hauptsächlich die kleinste und größte darstellbare Zahl. Für Gleitkommaformate hat sich die Abkürzung sxey durchgesetzt, s steht dabei für das Vorzeichenbit, X für die Bitbreite der Mantisse m, und Y für die Bitbreite des Exponenten e. Im nachfolgenden ist das Format s10e5 dargestellt. Seite 2-18

Um der Vorzeichenproblematik beim Exponenten zu entgehen wird nicht der Exponent direkt binär codiert, sondern es wird die sogenannte Charakteristik C Codiert und gespeichert. Um die Charakteristik C zu erhalten, wird der Wertebereich des Exponenten durch die Addition einer Konstanten k in den positiven Wertebereich verschoben, wie in nachfolgender Abbildung graphisch dargestellt ist. Das Bitmuster der Charakteristik ist damit eine vorzeichenlose Dualzahl und der wahre Wert des Exponenten kann jederzeit durch Subtraktion der Konstanten k zurückerhalten werden. Im Beispielformat s10e5 können mit 5 Bit des Exponenten 32 verschiedene Werte des Exponenten dargestellt werden. Wählt man [ -15 ; 16 ] als Wertebereich für den Exponenten, so berechnet sich die Charakteristik als C = E + 15, mit k = 15. Nachfolgend sind Beispiele für die Zahl 0,001101 aufgeführt. Seite 2-19

Wie man diesen Beispielen entnehmen kann, ist dieses Zahlenformat nicht eineindeutig. Die Zahlen können trotz unterschiedlicher Bitmuster gleich sein. Um dies zu vermeiden wird die Position des Kommas mit Hilfe einer entsprechenden Normalisierungsregel eindeutig festgelegt. Die folgenden beiden Normalisierungsregel kommen zum Einsatz: 1.) Nachkommanormalisierung Die erste Nachkommastelle enthält die höchste Ziffer ungleich null, im Dualsystem also die 1. 2.) Vorkommanormalisierung Die erste Vorkommastelle enthält die höchste Ziffer ungleich null, also im Dualsystem 1. Im Falle der Vorkommanormalisierung ist das erste Bit M m-1 der Mantisse eine Vorkommastelle, so dass sich nun die dargestellte Zahl wie folgt berechnet: Da das erste Bit der Mantisse bei einer Normalisierung stets 1 ist, können wir auf die Speicherung dieses Bits verzichten und haben daher Platz für ein zusätzliches Wertebit, das die Auflösungsgenauigkeit des Zahlenformats erhöht. Bei solchen Zahlenformaten spricht man von gepackten oder impliziten Darstellungen. Damit ergeben sich insgesamt vier normalisierte Darstellungen für Gleitkommazahlen für die in Abbildung 2.7 jeweils ein Beispiel für die Zahl 0,001101 dargestellt ist. Gepackte Zahlenformate haben jedoch trotz der mit ihnen erreichbaren höheren Auflösungsgenauigkeit einen Nachteil. Durch die implizite 1 an der ersten Vor- oder Nachkommastelle kann die Null nicht mehr direkt dargestellt werden. Da jedoch die Zahl Null bei Berechnungen unerlässlich ist, muss ein besonderes Bitmuster für die Null reserviert werden. Dies ist z. B. bei den IEEE-754-Gleitkommaformaten der Fall, die 1985 vom Institute of Electrical and Electronics Engineers ( IEEE) standardisiert wurden. Seite 2-20

Abbildung 2.7: Darstellung der vier Gleitkommaformate, die sich aus der gepackten und ungepackten Mantissendarstellung und den beiden Normierungsarten ergeben. Die IEEE-754-Gleitkommaformate Die Darstellung von Gleitkommazahlen in den IEEE-754- Gleitkommaformaten wird nahezu in allen gängigen Mikroprozessoren und auch in der Programmiersprache Java verwendet. In der nachfolgenden Abbildung 2.8 sind die Definitionen der Gleitkommaformate für einfache und doppelte Genauigkeit der IEEE-Norm 754 dargestellt. Diese Formate wenden meist die Vorkommanormalisierung an, d. h. das erste 1-Bit befindet sich stets vor dem Komma. Die Mantisse wird gepackt abgelegt, so dass das erste gespeicherte Mantissen-Bit nicht der Vorkomma-Eins, sondern der ersten Nachkommastelle entspricht. Eine denormalisierte Darstellung ist jedoch auch möglich. In diesen Formaten liegen reservierte Bitmuster vor, wenn entweder alle Charakteristik-Bits gleich 0 oder gleich 1 sind. Beide Fälle werden nachfolgend diskutiert. Seite 2-21

Abbildung 2.8: Darstellung der Definition der IEEE-754-Gleitkommaformate für einfache ( single-precision) und doppelte ( double-precision ) Genauigkeit. Die Spezialfälle dieser Zahlenformate werden nachfolgend diskutiert. 1.) Alle Bits der Charakteristik sind 0 In diesem Fall wird das Bitmuster der Mantisse als eine spezielle Gleitkommazahl interpretiert. Das Zahlenformat ist dann weder normalisiert noch gepackt. Die Null lässt sich dann darstellen indem alle Bits der Mantisse auf 0 gesetzt werden. 2.) Alle Bits der Charakteristik sind 1 Sind gleichzeitig alle Bits der Mantisse 0, so wird abhängig vom Vorzeichen + Unendlich bzw. Unendlich dargestellt. Dieses Bit muster entsteht z. B. wenn durch null dividiert wird oder zwei Zahlen addiert werden deren Summe außerhalb des gültigen Wertebereiches liegt. Nicht definierte und unbekannte Werte werden dargestellt indem zusätzlich in der Mantisse wenigstens 1 Bit ungleich 0 ist. Dies ist z. B. bei algebraisch undefinierten Operationen wie 0/0, 0, -1 usw. der Fall. Je ein Beispiel für eine normalisierte und eine denormalisierte Darstellung einer Gleitkommazahl nach der IEEE-754-Norm ist für einfache Genauigkeit in der Abbildung 2.9 dargestellt. Im Normalfall sind sowohl in der Charakteristik als auch der Mantisse Einsen und Nullen enthalten, so dass eine normalisierte Darstellung vorliegt. Seite 2-22

Abbildung 2.9: Darstellung von je einem Beispiel für eine normalisierte und eine denormalisierte Gleitkommazahldarstellung. Bei der denormalisierten Darstellung ist die Charakteristik gleich null. Darstellung von Gleitkommazahlen im Intel-Format Intel Prozessoren unterstützen nach Außen das IEEE-754-Format. Intern arbeiten sie jedoch nach dem Intel-Format mit einer wesentlich höheren Genauigkeit. Dieses Format ist in Abbildung 2.10 dargestellt. Abbildung 2.10: Darstellung des Extended-precision-Formats von Intel Seite 2-23

Bei dem Intel-Format ist die Bitbreite auf 80 Bit erweitert. Das Format für den Normalfall ist ungepackt und vorkommanormalisiert, d.h. das M 63 Bit der 64 Bit breiten Mantisse ist 1. Wird ein Operand in eine Gleitkommaeinheit geladen, z. B. einen Multiplizierer, so werden die IEEE-754-Bitmuster in das Intel-Format umgesetzt. Sämtliche arithmetische Operationen werden in diesem erweiterten Format durchgeführt. Ein Ergebnis wird dann in das IEEE-Format zurückkonvertiert. Bei dieser Vorgehensweise werden Rundungsfehler vernachlässigbar klein gehalten. Seite 2-24