Binärdarstellung von Fliesskommazahlen



Ähnliche Dokumente
Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Binäre Gleitkommazahlen

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

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

Grundlagen der Informatik

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?

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

Technische Informatik - Eine Einführung

Vertiefungsstoff zum Thema Darstellung von Zahlen

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

2 Darstellung von Zahlen und Zeichen

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

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

Computerarithmetik ( )

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

Einführung in die Informatik I

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

Zahlen in Binärdarstellung

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

Übungen zu Informatik 1

Zahlensysteme Seite -1- Zahlensysteme

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Numerisches Programmieren, Übungen

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

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Zahlensysteme Das 10er-System

2. Negative Dualzahlen darstellen

Theoretische Informatik SS 04 Übung 1

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

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Primzahlen und RSA-Verschlüsselung

Grundlagen der Informatik (BSc) Übung Nr. 5

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

Zahlensysteme: Oktal- und Hexadezimalsystem

Einführung in die Programmierung

Das Rechnermodell - Funktion

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Professionelle Seminare im Bereich MS-Office

5. Übung: Binäres Rechnen und Fließkommazahlen Abteilung Verteilte Systeme, Universität Ulm

Grundlagen der Technischen Informatik. 4. Übung

Das Maschinenmodell Datenrepräsentation

Inhalt: Binärsystem 7.Klasse - 1 -

Was meinen die Leute eigentlich mit: Grexit?

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

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

Aufgaben zu Stellenwertsystemen

YouTube: Video-Untertitel übersetzen

Zeichen bei Zahlen entschlüsseln

, WS2012 Übungsgruppen: Mo.,

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Im Original veränderbare Word-Dateien

Lösung 1. Übungsblatt

Zahlensysteme. von Christian Bartl

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

Info zum Zusammenhang von Auflösung und Genauigkeit

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

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

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

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

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

Anwendungsbeispiele Buchhaltung

Informationsblatt Induktionsbeweis

Die Post hat eine Umfrage gemacht

Leichte-Sprache-Bilder

Modul 114. Zahlensysteme

1 Mathematische Grundlagen

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet).

Anleitung über den Umgang mit Schildern

Informatik I: Abschnitt 7

Numerische Datentypen. Simon Weidmann

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Übung RA, Kapitel 1.2

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Die Bundes-Zentrale für politische Bildung stellt sich vor

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Vibono Coaching Brief -No. 39

Was ist Sozial-Raum-Orientierung?

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Gimp Kurzanleitung. Offizielle Gimp Seite:

ICS-Addin. Benutzerhandbuch. Version: 1.0

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

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

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Computeria Rorschach Mit Excel Diagramme erstellen

Reporting Services und SharePoint 2010 Teil 1

Internet online Update (Internet Explorer)

Repetitionsaufgaben Wurzelgleichungen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Theoretische Grundlagen der Informatik WS 09/10

Das Leitbild vom Verein WIR

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Technische Analyse der Zukunft

icloud nicht neu, aber doch irgendwie anders

Transkript:

Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M M M M M M M M M M M Exponent Mantisse Da es für eine Einführung in das Thema etwas unhandlich ist, mit so grossen Binärwerten zu arbeiten, werden wir analog zum IEEE 754-Standard eine 8-Bit Gleitkommazahl definieren, die zwar keinen praktischen Wert hat (der Zahlenbereich ist zu klein) aber wegen ihrer Kürze einfacher im Unterricht zu behandeln sind. 2. Babyfloats Unser neues kleines Zahlenformat soll wie folgt aufgebaut sein: S E E E E M M M Exponent Mantisse Erste Erläuterungen zur Codierung der einzelnen Zahlbestandteile: Negative Zahlen erhalten eine 1 im Vorzeichen-Bit (S=Sign). Bei positiven Zahlen steht dort eine 0. Für die Null erlaubt der Standard sowohl ein positiven als auch ein negatives Vorzeichen. Mit 4 Bits im Exponenten können wir grundsätzlich 2 4 = 16 verschiedene Exponenten darstellen. Jedoch sind die beiden extremen Exponenten 0 und 15 für spezielle Zahlen reserviert und können nicht als Exponenten verwendet werden (später mehr darüber). Bei IEEE 754-Fliesskommazahlen werden negative Exponenten nicht im Zweierkomplement dargestellt sondern werden durch eine einfache Verschiebung des Zahlenbereichs realisiert. Dazu halbieren wir den Bereich der 14 Exponenten in zwei gleich grosse Teile. Statt von 1 bis 14 laufen die echten Exponenten von 6 bis 7. Diese Verschiebung wird in der Fachsprache bias genannt und mit B abgekürzt. 1

Die Mantisse ist die reine Ziffernfolge, aus der eine Zahl (im jeweiligen Zahlensystem) besteht. Im Dezimalsystem haben beispielsweise 0.002357 und 235.7 dieselbe Mantisse 2357. Um die Genauigkeit der Mantisse um eine Stelle zu erhöhen, wendet man einen Trick an. Die Binärzahl wird so weit nach links oder rechts verschoben (Multiplikation oder Division mit 2), bis die führende 1 vor dem Dezimalpunkt steht. Beispiele: 1101.001 1.101001 2 3 0.0001001 1.001 2 4 Die Umwandlung in diese Zahlendarstellung heisst Normalisieren und die derart dargestellten Zahlen werden normalisiert genannt. Berücksichtigt man den Dezimalpunkt, so liegt die Mantisse der normalisierten Zahlen immer zwischen Eins und Zwei. Daher brauchen wir die führende Eins nicht speichern und können sie erst beim Auslesen der Zahl wieder anfügen. Auf diese Weise genügen drei Bits für eine vierstellige Mantisse. Der folgende Abschnitt beschreibt das Normalisieren im Detail. 3. Normalisierte Binärzahlen Als Analogie können wir die wissenschaftliche Darstellung von Dezimalzahlen heranziehen: 1258.23 = 1.25823 10 3 0.00379 = 3.79 10 3 Leider können wir im Dezimalsystem die erste Ziffer nicht einfach weglassen, ohne Informationen über die Zahl zu verlieren. Bei den Binärzahlen steht jedoch immer eine Eins vor dem Dezimalpunkt. Diese Eins können wir weglassen und sparen so ein Bit, das wir für eine weitere Nachkommastelle zur Verfügung haben. 4. Umwandlung einer Dezimalzahl in eine Babyfloat Welche Darstellung hat die Zahl 5.75 10? Vorzeichenbit: Da 5.75 > 0 S = 0. 2

Manitsse: Zuerst wandeln wir den ganzzahligen und den gebrochenen Anteil der Zahl in die Binärdarstellung um: (R steht für Rest, Ü steht für Überschuss) Ganzzahliger Anteil: 5 : 2 = 2 R 1 2 : 2 = 1 R 0 1 : 2 = 0 R 1 Gebrochener Anteil: 0.75 2 = 1 Ü 0.5 0.5 2 = 1 Ü 0 von unten nach oben: 5 10 = 101 2 von oben nach unten: 0.75 10 = 0.11 2 Durch Normalisierung der Binärdarstellung erhalten wir: 5.75 10 = 101.11 2 = 1.0111 2 2 = m b e Lassen wir das erste 1-Bit weg, gewinnen wir die Mantisse M = 0111. Da sie jedoch nicht vollständig in den drei Mantissen-Bits platz hat, müssen wir das Bit ganz rechts abschneiden, was zu M = 011 und einer kleinen Abweichung gegenüber dem wirklichen Zahlenwert führt. Um den Exponenten zu codieren, nehmen wir den echten Exponenten e = 2 von oben und verschieben ihn mit dem Wert des Bias B = 7 in den positiven Bereich: E = e + B = 2 10 + 7 10 = 9 10 = 1001 2 Nun können wir aus S, E und M die IEEE-754-Darstellung der gegebenen Fliesskommazahl zusammensetzen: 5.75 10 0 1001 011 2 5. Umwandlung einer Babyfloat in eine Dezimalzahl Welcher Gleitkommazahl entspricht die Babyfloat-Binärzahl 1 1100 100? Vorzeichen: S = 1 negative Zahl Exponent: E = 1100 = 12 e = E B = 12 7 = 5 zur Erinnerung: Der Bias beträgt B = 7 3

Mantisse: Da der Exponent E weder den Wert 0 noch den Wert 15 hat, liegt kein Spezialfall vor und wir haben es mit einer normalisierten Zahl zu tun. Daher fügen wir links an die codierte Mantisse M = 100 eine 1 an und erhalten: m = 1.M = 1.100 Nun können wir die Zahl in ihrer binären Form zusammensetzen und anschliessend ins Dezimalsystem umwandeln: v = ( 1) 1.1 2 2 5 = ( 1) 110000 2 = ( 1) (32 10 + 16 10 ) = 42 10 6. Die betragsmässig grösste normalisierte Zahl Exponent: Da der grösste Exponent 1111 2 = 15 10 für andere Zwecke reserviert ist (siehe unten), müssen wir uns mit dem zweitgrössten Exponenten E = 1110 2 = 14 10 begnügen. Durch die Verschiebung um B = 7 erhalten wir schliesslich den echten maximalen Exponenten e = E B = 14 7 = 7 Mantisse: Hier gibt es keine Einschränkungen, so dass mit 3 Bits die grösste Mantisse M = 111 beträgt. Da wir im Bereich normalisierter Zahlen sind (0 < E < 15), müssen wir noch eine Eins an die höchstwertige Stelle setzen: Schliesslich erhalten wir m = 1.M = 1.111 v = 1.111 2 2 7 = 11110000 2 = 240 10 da es uns hier um die nur um die im absolutbetrag grössten Zahlen geht, können wir 240 als betragsmässig grösste negative Zahl betrachten. 7. Die betragsmässig kleinste normalisierte Zahl Exponent: Da der kleinste Exponent 0000 2 = 0 10 für andere Zwecke reserviert ist (siehe unten), müssen wir uns mit dem zweitkleinsten Exponenten E = 0001 2 = 1 10 begnügen. Durch die Verschiebung um B = 7 erhalten wir schliesslich den echten minimalen Exponenten e = E B = 1 7 = 6 4

Mantisse: Hier gibt es keine Einschränkungen, so dass mit 3 Bits die kleinste Mantisse M = 000 beträgt. Da wir im Bereich normalisierter Zahlen sind (0 < E < 15), müssen wir noch eine Eins an die höchstwertige Stelle setzen: Schliesslich erhalten wir m = 1.M = 1.000 = 1 v = 1 2 6 = 0.000001 2 = 1 2 6 = 1 64 = 0.015625 damit haben wir auch die betragsmässig kleinste negative Zahl gefunden: 0.015625 8. Die Null Auf der einen Seite gewinnen wir durch die Normalisierung immer eine Binärstelle mehr an Genauigkeit. Andererseits zwingt uns dies mit m = 1.M immer mindestens eine 1 in der Mantisse auf, so dass die Darstellung der 0 auf diese Weise unmöglich wird. Um die Normalisierung zu verhindern wird der Exponent mit dem Wert E = 0 codiert und die Mantisse wird in der Form m = 0.M interpretiert. Dies führt dazu, dass die Null auch als Gleitkommazahl aus lauter Nullen besteht naja nur fast, denn es gibt auch noch die negative Null, welche der Standard nicht verbietet. Somit hat die Null in unserem Babyfloat- Format die Darstellung(en): +0 = 0 0000 000 0 = 1 0000 000 9. Subnormalen Zahlen Wir halten fest, dass mit E = 0000 und M = 000 die Null codiert wird. Was sollen wir nun aber mit den übrigen Mantissen wie M = 100 oder M = 111 machen? Damit sie nicht irgendwie zwischen die normalisierten Zahlen geraten und so ein Durcheinander verursachen, sorgt man dafür, dass sie (betragsmässig) unterhalb der normalisierten Zahlen liegen. Daher auch der Ausdruck subnormale Zahlen. Wie bei der Darstellung der Null bereits erwähnt, zeigt ein Exponent aus lauter Nullen (E = 0) an, dass es sich um eine Zahl handelt, deren Mantisse 5

M in der Form 0.M interpretiert wird. Nun müssen wir nur noch einen geeignete binäre Stellenverschiebung finden, so dass die grösste subnormale Zahlen möglichst bündig unterhalb der kleinsten normalisierten Zahl liegt. Da die betragsmässig kleinste normalisierte Zahl die Darstellung v = 0.000001 2 hat (siehe oben), muss die grösste subnormalen Zahl unterhalb anknüpfen und die Form v = 0.000000111 2 haben. Da unsere Mantisse M = 111 neu als 0.M interpretiert wird, besteht die Verschiebung 0.111 2 0.000000111 2 um 6 Stellen (und nicht um 7, wie man vielleicht naiv denken würde). 10. Unendlich Nachdem wir mit dem Exponenten E = 0 die Zahl Null und die subnormalen Zahlen gewonnen haben, klären wir noch, was es mit dem maximalen Exponenten E = 15 auf sich hat. Die kleinste mit diesem Exponenten darstellbare Mantisse M = 0 wird für Unendlich (Infinity) verwendet. Wieder gibt es zwei Formen: 0 1111 000 = +Infinity 1 1111 000 = -Infinity 11. Zahlen, die gar keine sind Auch hier können wir uns fragen, was wir mit den übrigen Mantissen M zum Exponenten E = 15 anfangen sollen. Die Informatiker haben hier eine besondere Lösung gefunden. Mit den Mantissen M 0 werden Ereignisse anzgezeigt, die es bei korrektem Rechnen nicht geben darf. Beispielsweise könnte man die verbotene Division durch Null durch den Wert v = 0 1111 001 signalisieren. Ebenso könnte man den Versuch, aus einer negativen Zahl die Wurzel zu ziehen mit dem Code v = 0 1111 010 quittieren. Kurz: die mit E = 1111 codierten Zahlen sind gar keine Zahlen und werden als NaN (Not a Number) bezeichnet. Der IEEE 754-Standard unterscheidet übrigens nicht zwischen positiven und negativen NaNs. 6

12. Zusammenfassung Die Definitionen und Überlegungen der letzten Abschnitte lassen sich problemlos auf den echten IEEE 754-Standard übertragen. Gehen wir davon aus, dass eine Gleitkommazahl ein Vorzeichen S aus 1 Bit einen Exponenten E aus w Bits eine Mantisse M aus r Bits hat so ergeben sich die folgenden fünf Fälle: 1. Sind E = 2 w 1 und M 0, so ist v keine Zahl sondern eine NaN. 2. Sind E = 2 w 1 und M = 0, so ist v = ( 1) S Infinity. 3. Ist 0 < E < 2 w 1, so ist v = ( 1) S 1.M 2 E B (mit dem Bias B = 2 w 1 1) 4. Sind E = 0 und M 0, so ist v = ( 1) S 0.M 2 1 B (B = 2 w 1 1 Bias). 5. Sind E = 0 und M = 0, so ist v = ( 1) S 0 7