Zahlen in Binärdarstellung

Ähnliche Dokumente
Binärdarstellung von Fliesskommazahlen

Zahlensysteme und Kodes. Prof. Metzler

Basisinformationstechnologie I

Einführung in die Informatik I

1. Grundlegende Konzepte der Informatik

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

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

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

Grundlagen der Technischen Informatik. 3. Übung

Computergrundlagen Zahlensysteme

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Grundlagen der Technischen Informatik. 3. Übung

Vorlesung Programmieren

Computer rechnen nur mit Nullen und Einsen

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

Grundlagen der Technischen Informatik. 4. Übung

Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte -

Lösung 1. Übungsblatt

Übung Praktische Informatik II

Binärzahlen. Vorkurs Informatik. Sommersemester Institut für Informatik Heinrich-Heine-Universität Düsseldorf

Zahlendarstellungen und Rechnerarithmetik*

, 2014W Übungstermin: Fr.,

Grundlagen der Informatik

Informatik I Modul 2: Rechnerarithmetik (1)

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

Zahlensysteme Dezimal-System

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

, 2017S Übungstermin: Di.,

1. Tutorium Digitaltechnik und Entwurfsverfahren

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

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

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

2 Darstellung von Zahlen und Zeichen

2 Repräsentation von elementaren Daten

Einführung in die Informatik I

5 Zahlenformate und deren Grenzen

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

Kapitel 5: Darstellung von Daten im Rechner

6.2 Kodierung von Zahlen

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

, 2015S Übungstermin: Mi.,

Grundlagen der Technischen Informatik. 3. Übung

Skript Zahlensysteme

Wertebereiche, Overflow und Underflow

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Informatik I. Übung

Grundlagen der Technischen Informatik. 4. Übung

Digitaltechnik Grundlagen 2. Zahlensysteme

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

Einführung in die Computerorientierte Mathematik

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

Grundlagen der Technischen Informatik. 4. Übung

N Bit Darstellung von Gleitkommazahlen

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Einführung in die Informatik

Einführung in die Informatik

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

Grundlagen der Informationsverarbeitung:

Inhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. Informatik 1 / Kapitel 2: Grundlagen

Informatik Übungsaufgaben

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

01 - Zahlendarstellung

TI II: Computer Architecture Data Representation and Computer Arithmetic

Dualzahlen

Informatik I Übung, Woche 41

Inhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. 2.5 Logische Funktionen

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

Grundlagen der Informatik I ATI / MB

Der Zahlenformatstandard IEEE 754

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

, 5 8. Hunderter Zehner Zehntel. Einer

Einführung in die Informatik

Das Verfahren in Hardware

Grundlagen der Programmierung

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

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

Datendarstellung Teil 2

Lektion 1: Zahlensysteme und Binärdarstellung. Übersicht Lektion 1

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

Lösung 2. Übungsblatt

Grundlagen der Informatik

Grundlagen der Technischen Informatik. 4. Übung

mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung der Länge n 1 zur Basis b. Damit ist

Binäre Darstellung ganzer Zahlen

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Das Rechnermodell - Funktion

DuE-Tutorien 17 und 18

Zum Nachdenken. Welche Eigenschaften einer Vorzeichendarstellung. erreichen? Wie könnte man Vorzeichenzahlen darstellen?

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

2.1.2 Gleitkommazahlen

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

Transkript:

Zahlen in Binärdarstellung 1 Zahlensysteme Das Dezimalsystem Das Dezimalsystem ist ein Stellenwertsystem (Posititionssystem) zur Basis 10. Das bedeutet, dass eine Ziffer neben ihrem eigenen Wert noch einen Wert erhält, der durch ihre Position innerhalb der Zahl gegeben ist. Beispiel Dezimalziffer 6 9 3 Stellenwert 10 2 10 1 10 0 100 10 1 693 = 6 100 + 9 10 + 3 1 Die Ziffern einer Zahl im Dezimalsystem lassen sich auch auf umständliche Weise durch fortgesetzte Restbildung ermitteln: 693 : 10 = 69 Rest 3 69 : 10 = 6 Rest 9 6 : 10 = 0 Rest 6 Das Binärsystem Das Binärsystem ist ein Stellenwertsystem zur Basis 2. Bekanntlich werden Zahlen im Dezimalsystem aus den zehn Ziffern 0 bis 9 gebildet. Entsprechend werden Zahlen im Binärsystem aus den zwei Ziffern 0 und 1 gebildet. Wenn nicht aus dem Kontext hervorgeht, welche Basis einer Zahl zu grunde liegt, kennzeichnet man sie mit einem entsprechenden Index. Beispiele: 101 10, 101 2 oder 235 6. Umrechnung vom Binär- ins Dezimalsystem Diese erfolgt analog zur Darstellung von Zahlen zur Basis 10: Beispiel: 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 8 + 2 + 1 = 11 10 Übung Welche Darstellung hat die Binärzahl 10000101 2 im Dezimalsystem? 10000101 2 = 1 2 7 + 1 2 2 + 1 1 0 = 128 + 4 + 1 = 133 1

Umrechnung vom Dezimal- ins Binärsystem 293 : 2 = 146 Rest 1 146 : 2 = 73 Rest 0 73 : 2 = 36 Rest 1 36 : 2 = 18 Rest 0 18 : 2 = 9 Rest 0 9 : 2 = 4 Rest 1 4 : 2 = 2 Rest 0 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 0 : 2 = 0 Rest 0 Reste von unten nach oben gelesen: 293 10 = 100100101 2 Übung Welche Darstellung hat die Dezimalzahl 47 im Dualsystem? 47 : 2 = 23 Rest 1 23 : 2 = 11 Rest 1 11 : 2 = 5 Rest 1 5 : 2 = 2 Rest 1 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 47 = 101111 2 Übung Welche Darstellung hat die Dezimalzahl 148 im Dualsystem? 148 : 2 = 74 Rest 0 74 : 2 = 37 Rest 0 37 : 2 = 18 Rest 1 18 : 2 = 9 Rest 0 9 : 2 = 4 Rest 1 4 : 2 = 2 Rest 0 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 148 = 10010100 2 2

Das Hexadezimalsystem Für das (Sechzehnersystem) benötigen wir sechzehn Ziffern. Da wir im Dezimalsystem aber nur zehn Ziffern zur Verfügung haben, verwenden wir für die fehlenden Ziffern die ersten sechs Buchstaben unseres Alphabets. 10er-System 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16er-System 0 1 2 3 4 5 6 7 8 9 A B C D E F Gross- und Kleinschreibung wird nicht unterschieden. Umrechnung vom Hexadezimal- ins Dezimalsystem Hexadezimalzahl 1 5 E Stellenwert 256 16 1 15E 16 = 1 256 + 5 16 + 14 1 = 350 10 Umrechnung vom Dezimal- ins Hexadezimalsystem 1610 : 16 = 100 Rest A 100 : 16 = 6 Rest 4 6 : 16 = 0 Rest 6 1610 10 = 64A 16 Umrechnungen vom Hexadezimal- ins Binärsystem Da auch das Hexadezimalsystem die Basis 2 hat, ist das Umrechnen zwischen diesen Systemen einfach. Da jede Hexadezimalzahl durch genau vier Dualziffern dargestellt werden kann, teilen wir jede Binärzahl von rechts nach links in Vierergruppen ein. Fehlende Stellen links werden durch Nullen aufgefüllt. Dann wandelt man jede Vierergruppe in die entsprechende Hexadezimalzahl um. Beispiel: Wandle die Binärzahl 1111001001 2 in eine Hexadezimalzahl um: 0 0 1 1 1 1 0 0 1 0 0 1 3 C 9 Beispiel Stelle die Hexadezimalzahl F4E7 als Dualzahl dar: F 4 E 7 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 3

Kennzeichnung von Hexadezimalzahlen In der Informatik werden Hexadezimalzahlen zur Kennzeichnung das Präfix 0x oder dass Suffix h beigefügt. Beispiel: 1A53 16 = 0x1A53 = 1A53h Das Oktalsystem Das Oktal ist ist das Zahlensystem zur Basis 8, das aus den Ziffern 0, 1,..., 6, 7 besteht. Umrechnung vom Oktal- ins Dezimalsystem Oktalziffer 1 0 2 7 Stellenwert 8 3 8 2 8 1 8 0 512 64 8 1 1027 8 = 1 512 + 0 64 + 2 8 + 7 1 = 535 Umrechnung vom Dezimal- ins Oktalsystem 843 : 8 = 105 Rest 3 105 : 8 = 13 Rest 1 13 : 8 = 1 Rest 5 1 : 8 = 0 Rest 1 843 10 = 1513 8 Beispiel Rechne 473 8 ins Dezimalsystem um: 473 8 = 3 1 + 7 8 + 4 64 = 315 Beispiel Rechne 1217 10 ins Oktalsystem um: 1217 : 8 = 152 Rest 1 152 : 8 = 19 Rest 0 19 : 8 = 2 Rest 3 2 : 8 = 0 Rest 2 1217 10 = 2301 8 4

Umrechnungen zwischen Oktal- und Binärsystem Da die Basis 8 des Oktalsystems eine Potenz der Basis 2 des Dualsystems ist, sind die beiden Systeme in einer gewissen Weise miteinander verwandt. Das erleichtert das Umrechnen zwischen diesen Systemen. Wollen wir eine Binärzahl direkt ins Oktalsystem umwandeln teilen wir ihre Ziffern von rechts nach links in Dreiergruppen ein. Fehlende Stellen links füllen wir mit Nullen auf. Da 001 2 = 1 8, 010 2 = 2 8,..., 111 2 = 7 8, kann man jede Dreiergruppe aus Binärzählen in die entsprechende Okalzahl umwandeln. 0 1 0 1 1 0 0 1 1 2 6 3 Die Umrechnung in die andere Richtung ist ebenso einfach. Rechne als Beispiel die Oktalzahl 3756 8 in eine Binärzahl um. 3 7 5 6 0 1 1 1 1 1 1 0 1 1 1 0 Übung Stelle 11110101010 2 im Oktalsystem dar: 0 1 1 1 1 0 1 0 1 0 1 0 3 6 5 2 011110101010 2 = 3652 8 Übung Stelle 1037 8 im Binärsystem dar: 001 000 011 111 2 Kennzeichnung von Oktalzahlen Oktalzahlen werden in der Informatik manchmal durch eine vorangestelle Null oder ein nachgestelltes kleines o gekennzeichnet, was jedoch leicht zu Verwechslungen führen kann. Beispiel: 371 8 = 0371 = 371o 5

2 Ganze Zahlen in Binärdarstellung Stelle die ganzen Zahlen von 0 bis 7 im Binärsystem mit führenden Nullen dar. 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 Bitwertigkeit Um Missverständnisse bei der Darstellung binärer Zahlen zu vermeiden, vereinbaren wir folgende Begriffe: Das Bit, das die kleinste Zweierpotenz repräsentiert, wird least significant bit (LSB) genannt. Das Bit, das die grösste Zweierpotenz repräsentiert, wird most significant bit (MSB) genannt. Da in unserer Zahlendarstellung die Stellenwerte von rechts nach links aufsteigen, vereinbaren wir, dass das LSB jeweils ganz rechts steht. Dies wird schematisch so dartestellt: 7 0 0 1 0 0 1 0 1 1 Addition Allgemein gilt: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 Übertrag 1 Der Ablauf ist wie im Dezimalsystem: von rechts nach links, mit Übertrag. Führende Leerstellen werden wie Nullen behandelt. Beispiel 0 0 1 1 1 = 7 + 0 1 1 0 1 = 13 = 1 0 1 0 0 = 20 6

Negative ganze Zahlen Ansatz: Stelle der Binärdarstellung ein zusätzliches Bit voran, wobei beispielsweise 1 eine negative und 0 eine positive Zahl bedeutet. 0011 2 = 3 10 1011 2 = 3 10 Wie wir aus der 7. Klasse wissen, muss man beim Rechnen mit Vorzeichen mühsame Fallunterscheidungen beachten. Deshalb fand man eine andere Darstellung für negative Zahlen, mit der Computer einfacher und schneller rechnen können. Diese Darstellungsweise soll nun vorgestellt werden. Stelle die ganzen Zahlen von 0 bis 7 im Binärsystem mit führenden Nullen dar. Setze anschliessend die Tabelle in natürlicher Weise in den Bereich der negativen Zahlen fort. 7 0 1 1 1 6 0 1 1 0 5 0 1 0 1 4 0 1 0 0 3 0 0 1 1 2 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 2 1 1 1 0 3 1 1 0 1 4 1 1 0 0 5 1 0 1 1 6 1 0 1 0 7 1 0 0 1 8 1 0 0 0 Eigenschaften Das Bit ganz links kann als Vorzeichenbit interpretiert werden. Die Bitsumme der Zahlen k und (k + 1) ergibt immer ein Bitmuster aus lauter Einsen. Beispiel: 0100 = 4 + 1011 = 5 1111 = 1 Die Bitsumme der Zahlen k und k ergibt immer ein Bitmuster aus Nullen und einer einer Eins (vom Übertrag). Beispiel: 0100 = 4 1100 = 4 10000 = 0 7

Das Einerkomplement Das Einerkomplement A einer Binärzahl A erhält man durch Flippen jedes Bits von A. Beispiel: A = 0 1 0 1 0 0 1 1 A = 1 0 1 0 1 1 0 0 A + A = 1 1 1 1 1 1 1 1 Allgemein gilt für eine n-stelligen Binärzahl A und ihr Einerkomplement A: A + A = 2 n 1 Das Zweierkomplement Das Zweierkomplement einer Binärzahl A ist der um 1 vergrösserte Wert des Einerkomplements A. Beispiel: A = 0 1 0 1 0 0 1 1 A = 1 0 1 0 1 1 0 0 (Einerkomplement) A + 1 = 1 0 1 0 1 1 0 1 (Zweierkomplement) Allgemein gilt für eine n-stelligen Binärzahl A und ihr Zweierkomplement A + 1: A + ( A + 1 ) = 2 n Zusammenfassung Im n-stelligen Binärsystem der ganzen Zahlen stellt das Zweierkomplement der Zahl k die Gegenzahl k dar. Die Summe von k und k ergibt 2 n. Die Summe von k und k ergibt 0, wenn wir den Übertrag ignorieren. Beispiel Bestimme die Gegenzahl von 3 wenn vier Bit für die Zahlendarstellung zur Verfügung stehen: A 0 0 1 1 = +3 A 1 1 0 0 = 4 A + 1 1 1 0 1 = 3 8

Beispiel Bestimme die Gegenzahl von 5 wenn vier Bit für die Zahlendarstellung zur Verfügung stehen: A 1 0 1 1 = 5 A 0 1 0 0 = 4 A + 1 0 1 0 1 = 5 Die Berechnung der Gegenzahl funktioniert offenbar auch, wenn man von einer negativen ganzen Zahl ausgeht. Binäre Subtraktion Da wir jetzt einem Methode kennen, mit der man aus der Binärdarstellung der Zahl k ihre (binäre) Gegenzahl k bestimmen kann, können wir die Subtraktion einer Zahl k als Addition ihrer Gegenzahl k darstellen. Formal: m k = m + ( k) Subtraktion mit positivem Ergebnis Berechne 6 4 = 6 + ( 4): 0 1 1 0 = 6 + 1 1 0 0 = 4 = 0 0 1 0 = 2 Beachte So lange das Resultat innerhalb des Darstellungsbereiches (hier von 8 bis +7) liegt, darf eine allfällige Übertrags-Eins ganz links ignoriert werden. Subtraktion mit negativem Ergebnis Berechne 4 7 = 4 + ( 7): 0 1 0 0 = 4 + 1 0 0 1 = 7 = 1 1 0 1 = 3 Addition von zwei negativen Zahlen Berechne 2 + ( 3): 1 1 1 0 = 2 + 1 1 0 1 = 3 = 1 0 1 1 = 5 9

Multiplikation Allgemein gilt: 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 Beispiel Die Multiplikation zweier Binärzahlen besteht aus einer fortgesetzten Addition unter Stellenverschiebung; hier gezeigt an der Rechnung 13 10. 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 Beispiel 1 0 1 0 1 1 (2 11) 0 0 0 0 1 0 1 1 1 0 1 1 0 (22) Moral: Im binären Zahlensystem bedeutet eine Multiplikation mit dem dezimalen Wert 2 das Anhängen einer Null rechts vom LSB. Division Die Division binärer Zahlen wird auf eine fortgesetzte Subtraktion unter Stellenverschiebung durchgeführt. Beispiel: (65 : 13 = 5) 1 0 0 0 0 0 1 : 1 1 0 1 = 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 10

Beispiel Binäre Division von 22 : 2: 1 0 1 1 0 : 1 0 = 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 Moral: Im Binärsystem bedeutet eine Division durch 2 10 das Verschieben aller Binärstellen um eine Stelle nach rechts und löschen des LSB. Problem Bei der ganzzahligen Division einer ungeraden Zahl durch 2 entsteht ein Rest. 11

3 Binärdarstellung von Dezimalzahlen Binärdarstellung von Zahlen zwischen 0 und 1 0.8125 10 =? 2 durch Probieren ( ausfüllen ): n 2 n Bit kumuliert 1 0.5 1 0.5 2 0.25 1 0.75 3 0.125 0 0.75 4 0.0625 1 0.8125 0.8125 10 = 0.1101 2 (von oben nach unten gelesen!) mechanisch: 0.8125 2 = 1.625 Ü 1 0.625 2 = 1.25 Ü 1 0.25 2 = 0.5 Ü 0 0.5 2 = 1.0 Ü 1 0 2 = 0 Ü 0... 2 =... Ü... Problematisches Beispiel: 0.1 10 =? 2 0.1 2 = 0.2 Ü 0 0.2 2 = 0.4 Ü 0 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 0.8 2 = 1.6 Ü 1... 2 =... Ü... 0.1 10 = 0.000110011001100... 2 = 0.0001100 2 (nichtabbrechende Binärdarstellung) Gleitkommazahlen im IEEE 754-Standard 31 30 23 22 0 ± Exponent Mantisse Vorzeichen (Bit 31) 12

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. Exponent (Bits 23 30) Mit 8 Bits im Exponenten können wir grundsätzlich 2 8 = 256 verschiedene Exponenten darstellen. Jedoch sind 0 und 255 für spezielle Zahlen reserviert und können nicht als Exponenten verwendet werden. Bei IEEE 754-Gleitkommazahlen werden negative Exponenten nicht im Zweierkomplement dargestellt sondern werden durch eine einfache Verschiebung des Zahlenbereichs realisiert, indem man vom jeweiligen Exponenten 127 subtrahiert. Diese Verschiebung wird in der Fachsprache bias genannt. Mantisse (Bits 0 22) Die Mantisse ist die Ziffernfolge einer Zahl. Die Dezimalzahlen 0.002357 und 235.7 haben beispielsweise dieselbe Mantisse 2357. Die Binärzahl wird so lange mit einer Zweierpotenz multipliziert oder dividiert, bis bis die führende 1 vor dem Dezimalpunkt steht. Diesen Vorgang nennt man Normalisieren. Beispiele: Binärzahl Normalform Mantisse 1101.01 1.10101 2 3 (1)10101 0.00101 1.01 2 3 (1)01 Indem man die durch das Normalisieren zwangsläufig entstehende führende 1 weglässt, kann man den Speicherbedarf um 1 bit verkleinern. 13

Dezimalzahl Gleitkommazahl Welche Darstellung hat die Zahl 5.75 10? Vorzeichenbit: Da 5.75 > 0 S = 0 Mantisse: 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 von unten nach oben: 5 10 = 101 2 gebrochener Anteil: 0.75 2 = 1 Ü 0.5 0.5 2 = 1 Ü 0 von oben nach unten: 0.75 10 = 0.11 2 Normalisierung: 5.75 10 = 101.11 2 = 1.0111 2 2 Mantisse: M=0111 Exponent: Um den Exponenten zu codieren, nehmen wir den Exponenten der Binärdarstellung und addieren 127 hinzu: E = 2 + 127 = 129 Exponent: 129 10 = 10000001 2 Nun können wir aus S, E und M die IEEE-754-Darstellung der gegebenen Gleitkommazahl zusammensetzen: 0 10000001 01110000000000000000000 Gleitkommazahl Dezimalzahl Welcher Gleitkommazahl entspricht die folgende Binärzahl im IEEE 754-Format? 1 10000100 01010000000000000000000 Vorzeichen: S = 1 (negative Zahl) Exponent: E = 10000100 2 = 132 e = 132 10 127 10 = 5 Mantisse: Die weggelassene 1 wird vor die Mantisse gesetzt: M = 1.0101 2 ( 1) 1.0101 2 2 5 = ( 1) 101010 2 = ( 1) (2 + 8 + 32) = 42 14

Die betragsmässig grösste normalisierte Zahl Der maximale Exponent beträgt e = 254 127 = 127, da 11111111 2 = 255 für andere Zwecke reserviert ist. Die grösste Mantisse beträgt M = (1)11111111111111111111111 wenn wir wieder die Eins an die höchstwertige Stelle setzen. Damit erhalten wir 1.11111111111111111111111 2 127 = 111111111111111111111111 2 104 3.403 10 38 als betragsmässig grösste normalisierte Zahl Die betragsmässig kleinste normalisierte Zahl Der minimale Exponent beträgt 1 127 = 126, da 00000000 2 = 0 für andere Zwecke reserviert ist. Die kleinste Mantisse beträgt M = (1)00000000000000000000000 wenn wir wieder die Eins an die höchstwertige Stelle setzen. Damit erhalten wir 1 2 126 1.175 10 38 als betragsmässig kleinste normalisierte Zahl 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 die folgenden Darstellung(en): +0 = 0 00000000 00000000000000000000000 0 = 1 00000000 00000000000000000000000 Subnormalen Zahlen Wir halten fest, dass mit E = 00000000 und M = 00000000000000000000000 die Null codiert wird. Was sollen wir nun aber mit den Mantissen 100000000000000000000000... 111111111111111111111111 15

machen, wenn der Exponent E = 00000000 ist? Diese Werte lassen sich nun dazu verwenden, um Zahlen darzustellen, die zwischen Null und der kleinsten normalisierte Zahl sind. Deshalb 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 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). 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 = 255 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 Zahlen, die gar keine sind Auch hier können wir uns fragen, was wir mit den übrigen Mantissen M zum Exponenten E = 255 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. 16

Zusammenfassung 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: E = 2 w 1, M 0 v = NaN E = 2 w 1, M = 0 v = ( 1) S Infinity 0 < E < 2 w 1 v = ( 1) S 1.M 2 E B E = 0, M 0 v = ( 1) S 0.M 2 1 B E = 0, M = 0 v = ( 1) S 0 17