2 Rechnen auf einem Computer



Ähnliche Dokumente
Binärdarstellung von Fliesskommazahlen

Computerarithmetik ( )

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

Vertiefungsstoff zum Thema Darstellung von Zahlen

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

2 Darstellung von Zahlen und Zeichen

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

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

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

2. Negative Dualzahlen darstellen

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Grundlagen der Informatik

Binäre Gleitkommazahlen

Technische Informatik - Eine Einführung

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

Das Rechnermodell - Funktion

Grundstrukturen: Speicherorganisation und Zahlenmengen

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

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Einführung in die Informatik I

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

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

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

Das Maschinenmodell Datenrepräsentation

Zahlensysteme Seite -1- Zahlensysteme

Übungen zu Informatik 1

Zahlendarstellungen und Rechnerarithmetik*

Inhalt: Binärsystem 7.Klasse - 1 -

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?

Binär- und Hexadezimal-Zahl Arithmetik.

Grundlagen der Informatik (BSc) Übung Nr. 5

Eine Logikschaltung zur Addition zweier Zahlen

Zeichen bei Zahlen entschlüsseln

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

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

Theoretische Informatik SS 04 Übung 1

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

Mikro-Controller-Pass 1

, WS2012 Übungsgruppen: Mo.,

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Numerisches Programmieren, Übungen

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

Rationale Zahlen. Weniger als Nichts? Ist Null nichts?

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Daten verarbeiten. Binärzahlen

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

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

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

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Zahlensysteme: Oktal- und Hexadezimalsystem

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

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

Aufgaben zu Stellenwertsystemen

Einführung in die Programmierung

2 Einfache Rechnungen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

Informationsdarstellung im Rechner

1. Stellenwerte im Dualsystem

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

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

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

Einstieg in die Informatik mit Java

3 Rechnen und Schaltnetze

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Primzahlen und RSA-Verschlüsselung

Zahlensysteme. von Christian Bartl

Geld wechseln kann als Visualisierung des Zehnerübergangs dienen. Die Zwischengrössen (CHF 2.-, 5.-, 20.-, 50.-) weglassen.

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

Plotten von Linien ( nach Jack Bresenham, 1962 )

Lineare Gleichungssysteme

7 Rechnen mit Polynomen

Informatik I: Abschnitt 7

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Binär Codierte Dezimalzahlen (BCD-Code)

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

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

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Wissenswertes über binäre Felder

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/

Im Original veränderbare Word-Dateien

Teil II. Schaltfunktionen

Numerische Datentypen. Simon Weidmann

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book

Lösung 1. Übungsblatt

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

Rechnerstrukturen WS 2012/13

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

1 Mathematische Grundlagen

Weiterbildung und Zusatzausbildung der PHZ Luzern Interessantes und Spannendes aus der Welt der Mathematik September 2006, Dieter Ortner

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Modul 114. Zahlensysteme

Kapitalerhöhung - Verbuchung

C:\WINNT\System32 ist der Pfad der zur Datei calc.exe führt. Diese Datei enthält das Rechner - Programm. Klicke jetzt auf Abbrechen.

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

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

Information in einem Computer ist ein

Transkript:

2 Rechnen auf einem Computer 2.1 Binär, Dezimal und Hexadezimaldarstellung reeller Zahlen Jede positive reelle Zahl r besitzt eine Darstellung der Gestalt r = r n r n 1... r 1 r 0. r 1 r 2... (1) := ( r n r n 1...r 1 r 0. r 1 r 2...) 10 := r n 10 n + r n 1 10 n 1 +... + r 1 10 1 + r 0 10 0 }{{} =1 +r 1 10 1 + r 2 10 2 +... mit r i {0,..., 9}, r n 0, n Z geeignet. (Da wir n Z zulassen, können die Zahlen (1) auch das Aussehen 0. 00...0r n r n 1 r n 2... (n < 0) (2) haben.) (1) heißt Dezimaldarstellung von r oder Darstellung im Zehnersystem. Beispiel 1 a) r = 1 = 0.333... =: 0.3; 3 n = 1, r i = 3, r periodisch, da rational. b) r = 10 2 = 14.142...; n = 1, r 1 = 1, r 0 = 4, r 1 = 1,... unregelmäßige, nichtperiodische Ziffernfolge, da r irrational. Analog zu (1) besitzt jede positive reelle Zahl r die Binärdarstellung r = ( b k b k 1...b 1 b 0. b 1 b 2...) 2 (3) := b k 2 k + b k 1 2 k 1 +... + b 1 2 1 + b 0 }{{} 2 0 =1 +b 1 2 1 +b 2 2 2 +... }{{} =1/2 mit b i {0, 1}, b k 0, k Z geeignet mit einer zu (2) analogen Form, falls k < 0. (3) heißt auch Dualdarstellung oder Darstellung im Dual oder Zweier 1

system. Ebenso besitzt jede positive reelle Zahl r die Hexadezimaldarstellung (auch: Darstellung im 16er System) r = ( h l h l 1... h 1 h 0. h 1 h 2...) 16 (4) := h l h l 1...h 1 h 0. h 1 h 2... := h l 16 l + h l 1 16 l 1 +... + h 1 16 1 + h 0 }{{} 16 0 =1 +h 1 16 }{{} 1 +h 2 16 2 +... = 1 16 mit h i {0,...,9, A, B, C, D, E, F }, h l 0, l Z geeignet. Dabei ist A := 10, B := 11,..., F := 15. Beispiel 2 r = 987 = (987) 10 = 1 512 + 1 256 + 1 128 + 1 64 + 0 32 + 1 16 + 1 8 +0 4 + 1 2 + 1 = (}{{} 11 1101 }{{} 1011 }{{}) 2 3 13 11 = (2 + 1) 256 + (8 + 4 + 0 + 1) 16 + (8 + 0 + 2 + 1) = 3 16 2 + 13 16 1 + 11 = (3DB) 16 Den Übergang vom Zweier ins 16er System erhält man dadurch, dass man (ausgehend vom Dualpunkt) jeweils zusammenhängende, nichtüberlappende Vierergruppen von Dualziffern zusammenfasst, diese zunächst in eine Dezimalzahl rückverwandelt und ihr die entsprechende Hexadezimalziffer zuordnet. Entsprechend erhält man den Übergang vom 16er ins Zweiersystem durch Darstellung der Hexadezimalziffern als Dualzahl gegebenenfalls unter Ergänzung von führenden Nullen, so dass Vierergruppen von Dualziffern entstehen. Beispiel 3 (}{{} 11 1101 1011 ) 2 = (3DB) 16 3 }{{} 13ˆ=D }{{} 11ˆ=B (3DB) 16 = (11 1101 1011) 2 Das Dualsystem ist entscheidend für das Rechnen auf einem Computer, da dieser die beiden Spannungszustände niedrig bzw. hoch mit 0 bzw. 1 kodieren und somit Dualzahlen problemlos darstellen kann. Da Dualzahlen in der Regel sehr lang sind, gibt man sie gern als Hexadezimalzahlen an. 2

Definiert man negative Zahlen durch Voransetzen eines Minuszeichens, so zeigen die Definitionen oben, dass sich jede ganze Dezimalzahl als ganze Dualzahl und als ganze Hexadezimalzahl schreiben lässt und umgekehrt. Endliche Dezimalbrüche brauchen im Allgemeinen jedoch keine endlichen Dualbrüche zu sein! Beispiel 4 Nebenrechnung: 0.1 = (0. 1) 10 = 1 10 = 1 (1010) 2 = 0.0001100 1 : (1010) 2 = 0.0001100 10000 1010 1100 1010 1000. 2.2 Rechnen mit Dualzahlen Additionstafel: + 0 1 0 0 1 1 1 10 Diese Tafel kann durch elektronische Schaltelemente realisiert werden. Beispiel 5 (Dualarithmethik) 1101 1101 1101 110 1101 : 110 = 10.0010 + 110 110 1101 110 10011 111 11010 1000 1001110 110 100 Bemerkung 1 Alle vier Grundoperationen (+,,,/) können auf die Addition zurückgeführt werden. Die Subtraktion verwendet dabei das sogenannte Zweierkomplement (alle Nullen durch Einsen und alle Einsen durch Nullen ersetzen [ = Stellenkomplement ] und dann 1 addieren). Es reicht somit, wenn das Rechenwerk des Computers ein Addierwerk besitzt. 3

Zur Subtraktion: Zahl: z Stellenkomplement: z Maximale Stellenzahl: n Zweierkomplement: z = z + 1 z + z = 2 n 1 + 2 n 2 +...2 1 + 1 = ( } 111 {{...1} ) 2 = 2n 1 2 1 = 2n 1 n Stellen z = z + 1 z + z = 2 n z = 2 n z z w = z+(2 n w) 2 } {{ } n = z+w 2 n ( = [2 n (z+w)] = z + w, falls z < w ) =w Beispiel 6 a) 1101 1101 } z } 110 + 1001 } w? + 1 w 1 0111 } {{ } z+w 111 ( = z + w 2 n ) b) 110 110 } z } 1101 + 0010 } w w? + 1 } 1001 }{{} 0110 z + w z+w + 1 111 111 ( = z + w ) 2.3 Zahlendarstellung im Rechner Dualzahlen werden im Rechner im Allgemeinen nur mit einer festen Stellenanzahl dargestellt. Dezimalbrüche wie (0.1) 10 sind daher nicht immer exakt darstellbar, sondern sind auf die maschinenvorgeschriebene Stellenanzahl gerundet. Konversionsfehler Hierauf beruht das falsche Ergebnis in Beispiel 1.1b). Beispiel 7 (0. 1) 10 = (0. 00011) 2 wird bei 8-ziffriger Darstellung als (0. 0001100) 2 dargestellt (Festpunktformat) und ist somit nicht exakt. Es gibt im Rechner im Wesentlichen zwei Zahlendarstellungen: 4

a) Festpunktdarstellung mit dem Dualpunkt nach einer festen Anzahl von Dualziffern (etwa nach den Einern um ganze Zahlen darzustellen). b) Gleitpunktdarstellung mit der Zahlendarstellung z = ±m 2 e ; (1) m heißt Mantisse und besitzt die Gestalt m = m 0. m 1 m 2...m lm 1 mit m 0 = 1, falls z 0, und m i {0, 1} sonst; (1) heißt dann normalisierte Gleitpunktdarstellung; l m heißt Mantissenlänge; e heißt Exponent und besitzt die Darstellung e = ±e 1 e 2...e le mit der Exponentenlänge l e. Lage der Gleitpunktzahlen: (endlich viele; nicht gleichmäßig auf dem Zahlenstrahl verteilt!) Überlauf (overflow) 0 Unterlauf (underflow) Überlauf (overflow) Eine Normierung der Zahlendarstellung schreibt der ANSI IEEE Standard 754 1985 vor. (ANSI = American National Standard Institute; IEEE = Institute of Electrical and Electronics Engineers) Beispiel 8 a) Festpunktdarstellung (Integer Zahlen) Format: 2 Byte (=16 Bit) Vorzeichen: 1 Bit Größte darstellbare Integer-Zahl: z max = 2 15 1 = 32767 5

Abspeicherung: V Ziffern 15 14 0 high bit low bit Ringdarstellung von Integer Zahlen unter Verwendung des Zweier komplements (Format: 1 2 Byte = 4 Bit der Einfachheit halber) 1001 = 7 1000 = 8 0111 = 7 1010 = 6 0110 = 6 1011 = 5 0101 = 5 1100 = 4 negative Zahlen positive Zahlen 0100 = 4 1101 = 3 0011 = 3 1110 = 2 0010 = 2 1111 = 1 0000 = 0 0001 = 1 Erstes Bit = Null positive Zahl (oder Null) Erstes Bit = Eins negative Zahl 6

Beispiel Zweierkomplement von 3 = (0011) 2 : (vergleiche 2.2) 1100 (Stellenkomplement) + 1 1101 ˆ= 3 Zweierkomplement von 3 = (1101) 2 : 0010 + 1 0011 ˆ= 3 b) Gleitpunktdarstellung (nach IEEE-Standard beim Zahlenformat double) Format: 8 Byte ( = 64 Bit ) Vorzeichen Mantisse: 1 Bit Mantissenlänge l m : 53 Bit Vorzeichen Exponent: 1 Bit Exponentenlänge l e : 10 Bit : 65 Bit Wegen der Normalisierung der Mantisse braucht die führende Eins nicht abgespeichert zu werden ( hidden bit ). Platzbedarf: 64 Bit Bereiche: i) Mantisse 2 53 = 2 10 5.3 (10 3 ) 5.3 10 16, 2 10 = 1024 10 3 d.h. durch die Mantisse können 15 16 Dezimalen kodiert werden. ii) Exponent Maximaler Exponent: e max = 2 10 1 = 1023 2 emax = 2 1023 = 2 10 102.3 10 3 102.3 10 307 (genauer: 10 308 ) Potenzbereich: 2 1023... 2 1023 (theoretisch!) 10 308... 10 308 Vergleiche aber die nachstehende IEEE Abspeicherung! IEEE Abspeicherung: (V,E,M) V E M 63 62 52 51 0 V := { 0, falls x 0 ( = VZ von m) 1, falls x < 0 7

E := e + bias ( 0) (2) (bias = 1023 = e max = e min + 1 = (11 } {{...1} ) 2 mit e min = 1022) 10 Einsen M := m 1 m 2... m lm 1 Bemerkung 2 a) Positive Exponenten beginnen wegen (2) mit 1, negative mit 0. b) Die Addition des bias erweitert den Exponentenbereich um eine Einheit nach oben: e min = 1022 ; e max = 1023 ; 11 } {{...1} 10 Einsen + bias = 11...10 11...1 } {{ } 11 Einsen ist noch frei; ebenso } 00 {{...0} ; 11 Nullen Die Exponenten 00... 0 und 11... 1 sind für Spezialfälle (vorzeichenbehaftete Null bzw. ± bzw. NaN [not-a-number]) bzw. denormalisierte Zahlen reserviert. Dadurch kann die kleinste normalisierte Gleitpunktzahl noch ohne Überlauf invertiert werden (ohne Beweis). c) (Normalisierte) Gleitpunktzahl: z = ( 1) V E bias 1.M 2 Beispiel 9 (Addition zweier Gleitpunktzahlen) Geg.: z = +m 2 e, z = +m 2 e, o.b.d.a. e e ; m, m [1, 2) (normalisiert) Ges.: z + z Vorgehen in mehreren Schritten: 1. Exponentenvergleich: e e? 2. Exponentenangleichung: Angleichen der Summanden an den größeren Exponenten Mantissenverschiebung z = m 2 e e } {{ } 2 e ; ˆm ist neue Mantisse, nicht normalisiert =: ˆm 3. Mantissenaddition: (unter Beibehaltung des gemeinsamen Exponenten) z + z = (m + ˆm ) } {{ } =: ˆm 2 e 8

4. Normalisierung der Mantisse: ˆm m [1, 2) e e z + z = m 2 e Bemerkung 3 Durch die Mantissenverschiebung in 2. und durch die Normalisierung in 4. können wegen des fest vorgegebenen Zahlenformats Ziffern verlorengehen. Rundungsfehler (z.b. Runden durch Abschneiden oder kaufmännisches Runden) Beispiel 10 (Addition) Format: 4 Byte (= 32 Bit) Vorzeichen Mantisse: 1 Bit Mantissenlänge l m : 24 Bit Vorzeichen Exponent: 1 Bit Exponentenlänge l e : 7 Bit : 33 Bit 1 Bit (hidden bit wie oben) : 32 Bit Addition von z = 1 2 25 und z = 1 2 1 : 1. Exponentenvergleich: 25 > 1 2. Exponentenangleichung bei z : z = 0. 0 }.{{..0} 1 2 25 23 Nullen 3. Mantissenaddition: z + z = 1. 0 }.{{..0} 1 2 25 23 Nullen 4. Normalisierung: (Runden durch Abschneiden) z + z = 1. } 0.{{..0} 2 25 23 Nullen Beachte: Durch die Rundung trägt z nichts zur Summe bei. Selbst kaufmännisches Runden würde das falsche Ergebnis z + z = 1. } 0.{{..0} 1 2 25 22 Nullen 9

liefern. Probleme beim Umgang mit Festpunktzahlen a) Bereichsüberschreitung (eventuell ohne Warnung oder Fehlermeldung) Beispiel 1.1e): i := 32767 ist die größte durch 2 Byte darstellbare Integer Zahl; i + 1 ˆ= 32768 (unter Beachtung der Ringdarstellung der Integer Zahlen) (i + 1) + i = 1. Probleme beim Umgang mit Gleitpunktzahlen a) Summation mehrerer Zahlen unterschiedlicher Größe Kleinere Summanden tragen wegen der Rundung bei der Gleitpunktaddition eventuell nichts zur Gesamtsumme bei (vergleiche Beispiel 1.1a) und Beispiel 9). Faustregel (nicht immer zutreffend): Addiere die Summanden nach Vorzeichen getrennt und summiere dabei nach aufsteigendem Betrag. b) Auslöschung Subtrahiert man zwei etwa gleich große Zahlen voneinander, so dass sich mehr als die Hälfte der führenden Ziffern wegheben, spricht man von Auslöschung. Theoretische Überlegungen und die Erfahrung zeigen, dass Auslöschung auf dem Rechner möglichst vermieden werden sollte. Beispiel 1.1c): 10 9 x 2 10 9 x + 10 9 = 0 b 2 4ac = 10 18 4 10 9 10 9 = 10 18 4 =. 10 18 aufgrund von Rundungsfehlern b b 2 4ac =. b b = 10 9 10 9 = 0 (vollständige) Auslöschung aufgrund vorheriger Rundungsfehler. x 1 = 0 Dies begründet das falsche Ergebnis. Abhilfe im vorliegenden Fall: x 1 = b b 2 4ac 2a b + b 2 4ac b + b 2 4ac = b2 (b 2 4ac) 2a( b + b 2 4ac) = 2c b + b 2 4ac. = Wurzel Trick 2c b + b = 2 109 10 9 + 10 = 1 9 10

Durch den Wurzel Trick wird Auslöschung vermieden. Bemerkung 4 Die falschen Vorzeichen in Beispiel 1.1d) resultieren ebenfalls aus Rundungsfehlern. 11