Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen



Ähnliche Dokumente
Binäre Gleitkommazahlen

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

2 Darstellung von Zahlen und Zeichen

Vertiefungsstoff zum Thema Darstellung von Zahlen

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

Technische Informatik - Eine Einführung

2. Negative Dualzahlen darstellen

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

Computerarithmetik ( )

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?

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

Binärdarstellung von Fliesskommazahlen

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

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

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

Die Mikroprogrammebene eines Rechners

Aufbau und Funktionsweise eines Computers

Zahlensysteme: Oktal- und Hexadezimalsystem

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

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

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

Zeichen bei Zahlen entschlüsseln

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

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

Grundlagen der Informatik

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Zahlensysteme Seite -1- Zahlensysteme

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Primzahlen und RSA-Verschlüsselung

Aufbau und Funktionsweise eines Computers

Numerische Datentypen. Simon Weidmann

Kap 4. 4 Die Mikroprogrammebene eines Rechners

, WS2012 Übungsgruppen: Mo.,

Einführung in die Informatik I

Zahlendarstellungen und Rechnerarithmetik*

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Zahlensysteme. von Christian Bartl

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

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

Einführung in die Java- Programmierung

Daten, Informationen, Kodierung. Binärkodierung

Binär- und Hexadezimal-Zahl Arithmetik.

1 Mathematische Grundlagen

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

Das Rechnermodell - Funktion

Übungen zu Informatik 1

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

Technische Informatik I

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

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Programmierkurs Java

Grundlagen der Theoretischen Informatik, SoSe 2008

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.

Leichte-Sprache-Bilder

Der Zwei-Quadrate-Satz von Fermat

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

Informationsdarstellung im Rechner

Lineare Gleichungssysteme

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Professionelle Seminare im Bereich MS-Office

Gliederung. Was ist der Unicode? Warum gibt es den Unicode? Wie funktioniert er? Wo ist mein Schriftzeichen? Kritische Stimmen

Grundlagen der Informatik (BSc) Übung Nr. 5

Rechnerstrukturen WS 2012/13

Informatik I: Abschnitt 7

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

Lineare Gleichungssysteme

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Einführung in. Logische Schaltungen

Numerisches Programmieren, Übungen

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

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Algorithmen zur Integer-Multiplikation

Das Maschinenmodell Datenrepräsentation

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Daten verarbeiten. Binärzahlen

Binär Codierte Dezimalzahlen (BCD-Code)

! " # $ " % & Nicki Wruck worldwidewruck

Aufgaben zu Stellenwertsystemen

Theoretische Informatik SS 04 Übung 1

Eine Logikschaltung zur Addition zweier Zahlen

Anleitung über den Umgang mit Schildern

Grundlagen der Informatik Übungen 1.Termin

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

1 topologisches Sortieren

Grundlagen der Informatik I Informationsdarstellung

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!.

Lichtbrechung an Linsen

Grundstrukturen: Speicherorganisation und Zahlenmengen

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

Einführung in die Algebra

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

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

Wir machen neue Politik für Baden-Württemberg

1. Stellenwerte im Dualsystem

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Transkript:

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Statt positive Zahlen von 0 bis 2 n -1mit einem Bitmuster der Länge n darzustellen und arithmetische Operationen darauf auszuführen, werden oftmals auch negative Zahlen benötigt. Elegante Lösung: Zweierkomplementdarstellung Addition zweier positiver Dualzahlen und solcher in Zweierkomplementdarstellung ergibt das gleiche Bitmuster Informatik I 1 WS 2005/2006 Zweierkomplementdarstellung für n Bits Nutze aus, dass z 2 n - z (mod 2 n ) Positive Zahlen von 0 bis 2 n -1-1wie bisher Darstellung negativer Zahlen z als 2 n - z 0 Binärcodierung elementarer Datentypen: Zweierkomplement 2 n -1 = 2 n -1-1 2 n -2 n -1 2 n -1 Beispiel: 4-Bit Dualzahlen im Zweierkomplement 1 0 2 1 2 n 0-1 1 0 2 n -1-1 2 n -1 1 2 n -1 2 n -1 2 n -1-1 Informatik I 2 WS 2005/2006 1

Binärcodierung elementarer Datentypen: Zweierkomplement Eigenschaften des Zweierkomplements Höchstes Bit zeigt an, ob die Zahl positiv oder negativ ist Der dargestellte Zahlbereich ist nicht symmetrisch Es gibt eine negative Zahl mehr als positive Zahlen Die Repräsentation der 0 ist nicht redundant (d.h. es gibt eine eindeutige Darstellung der 0) Informatik I 3 WS 2005/2006 Binärcodierung elementarer Datentypen: Zweierkomplement Der Zahlenwert w(b n-1 b 1 b 0 ) der n-bit Zahl b n-1 b 1 b 0 mit Darstellung im Zweierkomplement ergibt sich wie folgt: w( b n 1 i n n 1 Kb1b 0) = bi 2 bn 1 2 i= 0 = = = n 2 i= 0 n 2 i= 0 n 2 i= 0 b 2 i i b 2 i i + b b i b i 2 b n 1 n n 1 2 bn 1 2 n 1 n n 1 ( 2 2 ) 14243 = 2 n 1 n 1 2 n 1 Informatik I 4 WS 2005/2006 2

Binärcodierung elementarer Datentypen: Zweierkomplement Alternative Bestimmung des Wertes negativer Zahlen Schritt 1: Invertiere alle Bits Schritt 2: Bestimme den Zahlenwert Schritt 3: Addiere 1 zu dem erhaltenen Wert Schritt 4: Der Wert der dargestellten Zahl ergibt sich durch Negation des Ergebnis von Schritt 3 Beispiel: Vorgegebene Zahldarstellung: 1010110 Invertiere alle Bits: 0101001 Bestimme den Zahlenwert: 2 5 + 2 3 + 2 0 = 32 + 8 + 1 = 41 Addiere 1 : 41 + 1 = 42 Die dargestellte Zahl ist: 42 (Bem.: Bitweises vertauschen allein definiert das Einerkomplement) Informatik I 5 WS 2005/2006 Zahlkonversion Zur Umrechnung einer im Dezimalsystem gegebenen Zahl in ein Stellenwertsystem mit einer anderen Basis b > 1 eignet sich folgendes übersichtliche Schema: 225 =? 6 225 = 37 6 + 3 37 = 6 6 + 1 6 = 1 6 + 0 1 = 0 6 + 1, folglich gilt: 225 = 1013 6 Informatik I 6 WS 2005/2006 3

Zahlkonversion Will man umgekehrt eine Zahl aus einem nichtdezimalen Stellenwertsystem in das Dezimalsystem umrechnen, so braucht man nur die Koeffizienten mit den zugehörigen Potenzen der Basis zu multiplizieren und diese Produkte zu addieren: 2130 4 = 2 4 3 + 1 4 2 + 3 4 + 0 =2 64 + 1 16 + 3 4 = 156 (Bem.: Zur Automatisierung und bei großen Zahlen empfiehlt sich die Verwendung des Horner-Schemas!) Informatik I 7 WS 2005/2006 Binärcodierung elementarer Datentypen: Zeichen Mit n Bit können 2 n Zeichen dargestellt werden Für 26 Großbuchstaben mindestens 5 Bit erforderlich Wenn auch Kleinbuchstaben, Sonderzeichen usw. codiert werden sollen, dann sind 7 Bit sinnvoll Zuordnung Zeichen Bitmuster Konvention Gebräuchlich: ISO 7 Bit (ASCII), EBCDIC ASCIIist in ISO 8 Bit enthalten (höchstes Bit 0) und 16 Bit Unicode (obere 9 Bit sind 0) Informatik I 8 WS 2005/2006 4

Informatik I 9 WS 2005/2006 Binärcodierung elementarer Datentypen: Zeichen Alle UNIX-Rechner verwenden ASCII zur Zeichencodierung Java arbeitet mit UNICODE In Java stellt man einen Zeichenwert entweder durch das Zeichen in Hochkommata dar (Falls die Tastatur dies ermöglicht und es kein Sonderzeichen, wie etwa ein Hochkomma '\'' ist) Beispiel: char c = 'A'; oder gibt das Bitmuster in UNICODE als Hexadezimalzahl an Beispiel: char c = '\u0041'; Ziffernzeichen haben nicht den Binärcode des Zahlenwertes Kann bei ASCII durch einfachen Konversionsalgorithmus erhalten werden: Beispiel: char c = '7'; int z = c - '0'; Informatik I 10 WS 2005/2006 5

Neben ganzen Zahlen sind auch Gleitkommazahlen ein wichtiger elementarer Zahlentyp Im englischen Dezimalpunkt statt Komma, daher Floating-Point Annäherung an rationale Zahlen Nur endliche Genauigkeit Enthalten auch spezielle Zahlen (später) Darstellung einer Floating-Point Zahl z z = ( 1) Vorzeichenbit Mantisse Basis Exponent Informatik I 11 WS 2005/2006 Floating-Point Zahlen nach IEEE 754-1985 32 Bitfloat 64 Bitdouble Die Binärdarstellung einer Zahl 0 ist normalisiert auf Werte aus dem Intervall [1, 2) Das höchstwertige Bit wird unterdrückt (hidden bit) Der Exponent wird stets als positive Zahl dargestellt. Der tatsächliche Wert ergibt sich als: Basis ist 2 Exponent - Verschiebung (bias) 127 bei 32-Bit-Darstellung (float) 1023 bei 64-Bit-Darstellung (double) Informatik I 12 WS 2005/2006 6

Beispiel: 5,375 Die Mantisse wird wie folgt berechnet: Konvertierung in Binärdarstellung mit Komma: 5,375 = 101,011 2 Normierung auf ±1, 2 Exponent (D.h. das Komma wird so verschoben, dass eine 1 vor dem Komma steht): 101,011 2 = 1,01011 2 2 2 Danach wird nur die Bitfolge nach dem Komma als Mantisse gespeichert ( hidden bit) Damit ergibt sich: 5,375 = 1,01011 2 2129 127 Vorzeichenbit = 1, Exponent = 10000001, Mantisse = 010110 0 Informatik I 13 WS 2005/2006 Weitere Besonderheiten: Spezielle Floating-Point Zahlen +0 bzw. 0: v 0 0 0 0 Nicht normalisierte Zahl: v 0 0 0 0 + bzw. : v 1 1 0 0 NaN(Not-a-Number): v 1 1 0 0 Wenn kein sinnvolles Ergebnis einer arithmetischen Operation zugewiesen werden kann» Etwa 0 / 0»Oder + + Man beachte aber, dass etwa + + 5 den Wert + hat Informatik I 14 WS 2005/2006 7

Im Gegensatz zur Ganzzahlarithmetik kann es bei Floating-Point-Operationen zu Rundungsfehlern (round off error) kommen Multiplikationen erzeugen z.b. längere Mantissen, die wieder auf Standardformat gerundet werden müssen Bei der Addition muss eine Mantisse so verschoben werden, dass beide Zahlen mit dem gleichen Exponenten dargestellt sind Hierbei können einige und im Extremfall alle Bits der Mantisse eines Summanden aus dem Darstellungsbereich herausfallen Beispiele: Übersichtlicher dezimal Mantisse: 2 Stellen 1,34e0 3,45e2 = 4,623e2 4,62e2 1,34e0 + 3,45e2 = 0,0134e2 + 3,45e2 = 3,4634e2 3,46e2 Informatik I 15 WS 2005/2006 Bei längeren Berechnungen können sich diese Rundungsfehler sehr schnell anhäufen: Insbesondere wenn sowohl sehr kleine als auch sehr große Zahlen involviert sind Verschiedene Berechnungsverfahren für dieselbe Funktion können zu verschiedenen Ergebnissen führen Diese können numerisch stabil oder instabil sein Diese wichtige Problematik wird im Bereich numerischer Algorithmen genauer untersucht Informatik I 16 WS 2005/2006 8

Bei Konversion von Dezimal in Dual kann es bei Floating-Point Zahlen zu Konversionsfehlern kommen Endlicher Dezimalbruch kann unendlicher Dualbruch sein Beispiel: 0,1 = 0,00011001100110011... 2 Informatik I 17 WS 2005/2006 Algorithmus zur Konversion Informatik I 18 WS 2005/2006 9

Variablen und der Typ von Variablen Da Menschen Dinge lieber mit Namen bezeichnen statt mit numerischen Adressen zu arbeiten, kennt jede Programmiersprache das Konzept einer Variablen (variable) als abstraktes Analogon zu einer Speicherstelle Eine Variable hat einen symbolischen Namen (name) hinter dem eine Adresse verborgen ist derwert (value) der Variablen ist das dort gespeicherte Bitmuster Um diesen erschließen zu können, hat die Variable einen Typ (type), der bei ihrer Vereinbarung angegeben werden muss Informatik I 19 WS 2005/2006 Variablen und der Typ von Variablen In jeder Programmiersprache gibt es einige fest eingebaute elementare Datentypen, wie etwa char (Schriftzeichen, character) int (endlich große ganze Zahlen, integer) float (endlich große Gleitkommzahlen, floating point numbers) Jedem elementaren Typ entspricht ein Code, der jedem Wert dieses Typs ein Bitmuster einer festen Länge zuordnet: char (ASCII, Unicode), int (2er-Komplement), float (IEEE 754), Informatik I 20 WS 2005/2006 10

Programme als Daten Auch Programme können als Daten aufgefasst und wie solche gespeichert werden Programme im Quelltext (source code) sind Texte in einer beliebigen Programmiersprache wie z.b. Java Sie bestehen also aus Schriftzeichen Genauer: Der Typ des Binärcodes ist char Programme in Objektcode (object code) bestehen aus Befehlen, die in der spezifischen Sprache eines Prozessor-Typs geschrieben sind Typ des Binärcodes also abhängig vom Prozessor-Typ Informatik I 21 WS 2005/2006 Prozessor und Programmausführung Prozessor = Steuerwerk + arithmetisch-logische Einheit (ALU) +Register Steuerwerk: holt aus dem Speicher Befehle und führt sie aus Befehle sind in Maschinensprache CISC= complex instruction set computer RISC= reduced instruction set computer Informatik I 22 WS 2005/2006 11

Prozessor und Programmausführung Befehlsbeispiele LOAD: Lade Daten aus dem Speicher in ein Register STORE: Schreibe Daten aus einem Register in den Speicher ADD: Addiere zwei Register und lege das Ergebnis in ein drittes Register ab (wird von ALU ausgeführt) JUMP: Springe an eine Befehlsadresse im Speicher CONDITIONAL JUMP: Springe in Abhängigkeit von Registerinhalten oder Flags, z.b.: Zeroflag ZF, Signflag SF, Carryflag CF, Overflowflag OF Informatik I 23 WS 2005/2006 Von Neumann Architektur Daten und Programm gemeinsam im Hauptspeicher Fundamentaler Befehlsausführungszyklus Spezielles Register als Befehlszeiger zur Speicherung der aktuellen Programmadresse Befehlsregister speichert auszuführenden Befehl Informatik I 24 WS 2005/2006 12

Fundamentaler Befehlsausführungszyklus Fetch: Hole Befehl, dessen Adresse im Befehlszeiger steht, aus dem Speicher in das Befehlsregister Increment: Inkrementiere den Befehlszeiger, damit er auf den nächsten auszuführenden Befehl weist Decode: Dekodiere den Befehl, damit klar wird, was zu tun ist Fetch operands: Falls nötig, hole die Operanden aus den im Befehl bezeichneten Stellen in Speicher Execute: Führe die Instruktion aus, ggf. durch die ALU. Bei einem Sprung wird ein neuer Wert in den Befehlszeiger geschrieben. Loop: Gehe zum ersten Schritt (Fetch) Informatik I 25 WS 2005/2006 Chip Technik CPUin VLSI Technik VLSI = very large scale integration Transistoren als Grundstruktur Größenordnung 0,1 Micron = 1/10.000.000 m Moore's Law: Anzahl der Transistoren je Chip verdoppelt sich in jeweils 18 Monaten Pentium II: 7 Mio. Transistoren Itanium-2: 220 Mio. Transistoren Phys. Grenze (1 Transistor besteht aus wenigen Atomen) um 2020 Informatik I 26 WS 2005/2006 13

Ein paar Takte zur Geschwindigkeit Chips sind getaktet: Pro Takt wird eine einfache Operation ausgeführt heute 4 GHz: 1 Takt = 0,25 ns Lichtstrecke bei 0,25 ns = 7,5 cm Im Abstand von 0,75 m beobachten wir am Chip also die vergangenen Zustände von vor 10 Takten! Komplexe Operationen brauchen mehrere Takte z.b. Multiplikation oder Befehl mit Operanden im Speicher Lösungsansatz: pipelining Pipelining: parallele Dekodierung mehrerer nachfolgender Befehle Bei Sprüngen tritt die erwartete Beschleunigung nicht ein Viele Register, schnelle Zwischenspeicher (Caches) Informatik I 27 WS 2005/2006 14