Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 DigInf 05/06 Möglichkeiten für das Ende der Berechnung und Ergebnis: 1.TM hält an, das aktuelle T : Z  B ist das Ergebnis 2.  (q alt,T (C)) ist nicht.

Ähnliche Präsentationen


Präsentation zum Thema: "1 DigInf 05/06 Möglichkeiten für das Ende der Berechnung und Ergebnis: 1.TM hält an, das aktuelle T : Z  B ist das Ergebnis 2.  (q alt,T (C)) ist nicht."—  Präsentation transkript:

1 1 DigInf 05/06 Möglichkeiten für das Ende der Berechnung und Ergebnis: 1.TM hält an, das aktuelle T : Z  B ist das Ergebnis 2.  (q alt,T (C)) ist nicht definiert, undefiniertes Ergebnis 3.TM hält niemals an, undefiniertes Ergebnis 4.Beispiel von Programm und Berechnung (Subtraktion natürlicher Zahlen). 5.BSP! Formale Definition TM

2 2 DigInf 05/06 Absolute Position auf dem Band hat keine Bedeutung. Nummerierung dient nur der Beschreibung, ist aber bedeutungslos. Die Subtraktion natürlicher Zahlen ist eine partielle Funktion. Obiges Turing-Programm reflektiert das durch fehlende Definitionen für Übergänge, die bei zulässigen Eingaben nicht benötigt werden. Auch einfache Operationen/Programme erfordern viele Schritte. Dass diese in der Praxis nicht mehr sinnvoll/überschaubar simuliert werden können, weil sie sehr viel Speicher und Schritte benötigen, ist aus theoretischer Sicht unbedeutend. Die Codierung (siehe nächste VE) auf dem Bandalphabet ist im Grunde egal. Theorie zeigt, dass man mit dem minimalen Bandalphabet (B={a,z}) auskommt und die gleiche Mächtigkeit erzielt wie mit komplexen Alphabeten. Charakteristische Merkmale einer TM

3 3 DigInf 05/06 Daten, Informationen, Rechnerarchitekturen (Gumm / Sommer 4 ff, 359 ff) Ein Rechner versteht nur Nullen und Einsen, also geht es zunächst um die Frage, wie man mit Nullen und Einsen Informationen repräsentiert. Information Daten RepräsentationAbstraktion

4 4 DigInf 05/06 Bits, binärer Code, Bitfolgen Ein Bit ist die kleinstmögliche Einheit der Information. Entspricht der Informationsmenge der Antwort auf eine Frage, die nur 2 Möglichkeiten zulässt. Unter einer binären Codierung versteht man die Vereinbarung, welche der beiden möglichen Antworten mit 0 und welche mit 1 bezeichnet wird. Von den elektrotechnischen Details (welcher Kondensator muss welche Ladung aufweisen, welche Spannung liegt an einem Widerstand an, etc.) wird hier schon abstrahiert. Zu manchen Fragen gibt es mehr als zwei Antwortmöglichkeiten. Die Codierung kann dann nicht mehr in einem Bit erfolgen, sondern erfordert eine Bitfolge.

5 5 DigInf 05/06 Bits, binärer Code, Bitfolgen Beispiel Himmelsrichtung: 1. Frage: Weht der Wind aus einer der Richtungen Nord oder Ost (ja/nein)? 2. Frage: Weht der Wind aus einer der Richtungen Ost oder West (ja/nein)? ja/nein= 10 = Nord nein/ja = 01 = West ja/ja = 11 = Ostnein/nein = 00 = Süd Nimmt man die 4 Zwischenrichtungen Nordost, Südwest, etc. dazu, braucht man offensichtlich ein drittes Bit. Sei n die Länge einer Bitfolge. Es gibt 2 n Bitfolgen der Länge n.

6 6 DigInf 05/06 Hexziffern, Halb-Bytes Lange Kolonnen von Nullen und Einsen sind eher unübersichtlich, eine Kodierung mit hexadezimalen Ziffern erleichtert das Lesen durch Menschen. Dazu wird ein Halb-Byte (Gruppe von 4 Bits) durch eine hexadezimale Ziffer dargestellt. Und zwar: 0000 = 0 h 0001 = 1 h 0010 = 2 h... 1001 = 9 h 1010 = A h 1011 = B h 1100 = C h 1101 = D h 1110 = E h 1111 = F h 1AF3 = 1 * 16 3 + A * 16 2 + F * 16 1 + 3 * 16 0 97 10 = 61 16 = 01100001 2 Rechner verarbeiten keine einzelnen Bits, sondern Bitfolgen. Dabei variiert die Länge (8-Bit-Recher bis 64-Bit- Rechner).

7 7 DigInf 05/06 Bytes, ASCII Ein Byte besteht aus 8 Bits, es existieren also 2 8 verschieden Bytes. Hexadezimal erstreckt sich der durch ein Byte darzustellende Bereich von 00 h bis FF h, dezimal von 0 bis 255. Um Texte darzustellen, codiert man Alphabet und Satzzeichen in Bitfolgen. Für die Codierung aller Zeichen (Buchstaben, Ziffern, Satzzeichen, Steuerzeichen (TAB, CR, etc.) kommt man mit 128 Möglichkeiten (Folge von 7 Bits) aus.

8 8 DigInf 05/06 Bytes, ASCII Die gängige Codierung ist der „American Standard Code for Information Interchange“. In ASCII werden die Zeichen durchnummeriert. Beispiele: A:65 B:66 a:97 b:98 0: 48CR:13 ?:63 ASCII 0 bis ASCII 31 und ASCII 127 dienen verschiedenen Signalisierungs- und Steuerzwecken (Eingabe über Ctrl). Die 128 ASCII-Zeichen entsprechen also den Bytes 0000 0000 bis 0111 1111.

9 9 DigInf 05/06 ASCII-Erweiterungen Eine Datei, die nur ASCII-Zeichen enthält (also Bytes mit führender Null) nennt man ASCII-Datei (oft auch als Name für eine Textdatei verwendet, auch wenn gemäß ASCII-Erweiterung codiert wurde). Verwendung des 8. Bits: früher: Kontrollbit (even parity) aktuell: zur Kodierung weiterer 128 Zeichen! (Umlaute, Accents, Spezialsymbole) ISO (International Standard Organization) definierte verschiedene ASCII-Erweiterungen, in Europa: Latin-1 Verwendung verschiedener Erweiterungen führt zu Zeichensalat.

10 10 DigInf 05/06 ASCII-Erweiterungen Wirklich einheitlicher Code: Unicode (16 Bit Codierung), also 2 16 = 65536 Zeichen (erste 128 Zeichen entsprechen ASCII, die nächsten 128 entsprechen Latin-1) (vgl. www.unicode.org)www.unicode.org Standardisierung durch die ISO als Universal Character Set (UCS)

11 11 DigInf 05/06 Codierung von Texten, logischen Werten Texte: aufeinander folgende Codes der Zeichen Logische Werte: prinzipiell würde ein Bit reichen, Rechner arbeiten aber mit Bytes als kleinsten Einheiten, deshalb werden True und False mit einem ganzen Byte codiert. Gängig mit True = 1111 1111 und False = 0000 0000. Darauf sind dann die Boole‘schen Operatoren anwendbar (NOT, AND, OR, XOR). Man kann Bitfolgen aber auch als Folgen logischer Werte codieren. Damit ergeben sich bitweise logische Operationen wie: bitweises Komplement: NOT 0111 0110 = 1000 1001 bitweise Konjunktion: 0111 0110 AND 1110 1011 = 0110 0010 bitweise Disjunktion: 0110 0110 OR 1110 1011 = 1110 1111

12 12 DigInf 05/06 Codierung von Programmen Ausführbare Programme sind entweder im Hauptspeicher und/oder auf einem persistenten Speichermedium abgelegt und müssen damit auch codiert sein. Zunächst sind Programme Text, ein Übersetzer (Compiler) übersetzt das Programm in eine Reihe von Befehlen, die der Rechner versteht (die so genannten Maschinenbefehle). Diese Befehle sind auch in festgelegter Weise codiert. Eine Bytefolge 03D8 h codiert in einem gegebenen Fall z.B. den Maschinenbefehl „ADD BX, AX“.

13 13 DigInf 05/06 Darstellungen von Nat Natürliche Zahlen als aufeinanderfolgende Darstellung von Ziffernzeichen darzustellen ist nicht besonders effizient (wie man sich leicht überlegt). Stattdessen: eindeutige Zuordnung von Bitfolgen und Zahlen. Durch eine Bitfolge der Länge n lassen: die natürlichen Zahlen Nat von 0 bis 2 n -1, oder die ganzen Zahlen Z zwischen –2 n-1 und 2 n-1 + 1, oder Ein Intervall der reellen Zahlen mit begrenzter Genauigkeit darstellen. Wert der Bitfolge 1101: 1 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 13 Also: 1101 2 =13 10

14 14 DigInf 05/06 Oktalsystem, Hexadezimaldarstellung von Nat

15 15 DigInf 05/06 Nat-Darstellung, div und mod Seien d, z  Nat 0, d  0. z = q * d + r mit 0  r < d q heißt Quotient, r heißt Rest. div und mod bezeichnen das ganzzahlige Dividieren und die Divisionsrestermittlung, z.B. 39 div 8 = 4 39 mod 8 = 7 Also: z = (z div d) * d + (z mod d) Div und mod werden genutzt bei der Umwandlung einer Zahl (in Dezimaldarstellung) in eine Zahl (in einer anderen Darstellung, insbesondere Binärdarstellung).

16 16 DigInf 05/06 Umrechnen mit div und mod

17 17 DigInf 05/06 Arithmetische Operationen auf Nat Arithmetische Operationen auf Zahlen zu einer bestimmten Basis erfolgen prinzipiell genauso wie aus dem Dezimalsystem bekannt. Beispiel: Addition DezimalBinärOktalHexadez. 2752010 275227CA +4261100 1114261AF93 =7013111 0017233D75D

18 18 DigInf 05/06 Arithmetische Operationen auf Nat Subtraktion, Multiplikation, Division erfolgen ebenfalls in bekannter Art und Weise. Zu beachten bleibt: Überschreitung des Zahlenbereichs. Beispiel: 1100 0101 = 197 und 1101 0101 = 213 werden addiert. Das ergibt einen Übertrag ins neunte (nicht verfügbare Bit), hier: 1100 0101 +1101 0101 =11001 1010 Dieser Übertrag (carry-bit) wird bei einem 8-Bit-Rechner einfach nicht beachtet, als errechnetes Ergebnis bleibt 1001 1010 = 154 Einleuchtenderweise: (197 + 213) mod 256 = 154 Maßnahme zur Vermeidung: je nach Programmiersprache: explizite Abfrage der Wertebereichüberschreitung, Werfen von Ausnahmen oder ähnliches.

19 19 DigInf 05/06 Darstellung ganzer Zahlen Z Intuitive Überlegung: erstes Bit gibt Vorzeichen an. Offensichtliche Nachteile: 2 Darstellungen für die Null „übliches“ Addieren funktioniert nicht mehr Lässt sich natürlich durch anderen Addieralgorithmus lösen, einfacher ist aber die Zweierkomplementdarstellung 0000 = +01000 = -0 0001 = +11001 = -1 0010 = +21010 = -2 0111 = +71111 = -7 -2= 1010 + +5=+ 0101 = +3  = 1111

20 20 DigInf 05/06 Zweierkomplementdarstellung ganzer Zahlen Mit 4 Bits kann man 16 verschiedene ganze Zahlen darstellen. In der gebräuchlichen 2er- Komplementdarstellung wählt man –8 bis +7 und zwar folgendermaßen: -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 1000 = -81100 = -40000 = 00100 = 4 1001 = -71101 = -30001 = 10101 = 5 1010 = -61110 = -20010 = 20110 = 6 1011 = -51111 = -10011 = 30111 = 7 Die Bitfolge b n b n-1...b 1 b 0 bezeichnet dabei die folgende Zahl z: z = - b n * 2 n + b n-1 * 2 n-1 +...+ b 1 * 2 +b 0

21 21 DigInf 05/06 Zweierkomplementdarstellung modulo 16 Zahlen sind modulo 16 in der natürlichen Reihenfolge (modulo 16 bedeutet, dass man zwei Zahlen nicht unterscheidet, wenn ihre Differenz ein Vielfaches von 16 ist). –7 und +9 sind also modulo 16 gleich. Addiert man die Bitfolge b n b n-1...b 1 b 0 zu ihrem bitweisen Komplement so erhält man 11... 11. Dies bedeutet in der 2er-Komplementdarstellung –1. So erhält man zu der 2er- Komplementzahl b n b n-1...b 1 b 0 die dazugehörige negative Zahl, indem man zu ihrem bitweisen Komplement 1 addiert.

22 22 DigInf 05/06 Zweierkomplementdarstellung modulo 16 Vorteil: Subtraktion entspricht Negation mit anschließender Addition! Beispiele: +5 - +3 = +5 + -3 = 0101 + (NOT (0011) + 0001) = 0101 + (1100 + 0001) = 0101 + 1101 = 0010 = +2 +2 - +6 = +2 + -6 = 0010 + (NOT (0110) + 0001) = 0010 + (1001 + 0001) = 0010 + 1010 = 1100 = -4

23 23 DigInf 05/06 Überträge im Zweierkomplement Wir nehmen Darstellung durch n+1 Bits an und betrachten die Addition von 2 2erKomplementzahlen a n a n- 1...a 1 a 0 und b n b n-1...b 1 b 0. Als Ergebnis entsteht die Ziffernfolge c n c n-1...c 1 c 0 Ob das Ergebnis gültig ist hängt ab von a n und b n und einem eventuellen Übertrag c von dem n-1ten in das n-te Bit. Ergebnis ist gültig genau dann wenn –1  (- a n ) + (- b n ) + c  0 Ansonsten setzt der Prozessor ein Overflow-Flag.

24 24 DigInf 05/06 Gültigkeit von Ergebnissen Addierregeln sind für Binärzahlen und 2erKomplementzahlen gleich. Die Regeln für die Gültigkeit des Ergebnisses sind aber unterschiedlich. Als Summe von Binärzahlen ist die Addition genau dann gültig wenn (bei obiger Notation) 0  a n + b n + c  1 Als Summe von 2erKomplementzahlen ist die Addition genau dann gültig wenn (bei obiger Notation) 0  a n + b n - c  1 Die Addition der Bitfolgen 1101 und 0101 ergibt also in jedem Fall die Bitfolge 0010 mit c=1, also a n + b n + c = 2 und a n + b n - c = 0. Also, Binärzahlen-ungültig und 2erKomplementzahlen-gültig. Probe: Binär: 1101 + 0101 = 13 + 5 = 18  0010 Probe: 2erKomplement:1101 + 0101 = -3 + 5 = 2 = 0010

25 25 DigInf 05/06 Gleitpunktzahlen: Reelle Zahlen R In der Regel nur näherungsweise Darstellung. Intuitive Vorgehensweise: fixe Anzahl von Nachkommastellen. Aber: gewünschte Genauigkeit hängt vom Anwendungsbereich ab. Gesucht: festes Bitformat, das: ein möglichst großes Intervall der reellen Zahlen umfasst und deren Genauigkeit bei kleinen Zahlen sehr hoch, bei großen Zahlen niedriger ist Idee der Gleitpunktdarstellung: kleine Zahlen benötigen weniger Stellen vor dem Dezimalpunkt, größere Genauigkeit durch mehr Nachkommastellen. Für die Darstellung einer reellen Zahl müssen wir deshalb folgendes wissen: Vorzeichenbit: V, Ziffernfolge (Mantisse): M, Kommaposition (Exponent): E.

26 26 DigInf 05/06 Gleitpunktzahlen: Reelle Zahlen R Der Exponent ist eine Binärzahl, z.B. im Bereich von –64 bis +63, die angibt, mit welcher Potenz einer Basiszahl b die vorliegende Zahl zu multiplizieren ist. Meist wird b=2 als Basiszahl verwendet. Die Mantisse besteht aus einer Bitfolge m 1...m n und wird folgendermaßen interpretiert: m 1 * 2 -1 + m 2 * 2 –2 +... + m n * 2 –n Eine zur Basis 2 normierte Gleitpunktzahl ist eine solche, bei der der Exponent so gewählt wird, dass die Zahl in der folgenden Form dargestellt werden kann: +/- 1.m 1 m 2... m n * 2 E Normierung immer leicht möglich durch Erhöhen / Senken des Exponenten! Vorteil der Normierung: optimale Ausnutzung der Mantissenbits.

27 27 DigInf 05/06 Gleitpunktzahlen: Reelle Zahlen R Eine zur Basis 2 normierte Gleitpunktzahl mit Vorzeichen V, Mantisse M = m 1...m n Exponent E stellt also den folgenden Zahlenwert dar: (-1) V * (1 + m 1 * 2 -1 + m 2 * 2 –2 +... + m n * 2 –n ) * 2 E Beispiele von 32 Bit Gleitpunktzahlen, bei denen 23 Bits für die Mantisse verwendet werden: VEMantisseZahlenwert +1-13010010101101011011111110.00015777567163622 +4410101011000000000000000-29343216566272

28 28 DigInf 05/06 Gleitpunktzahlen: Reelle Zahlen R IEEE (Institute of Electrical and Electronics Engineers) hat folgende Normen verabschiedet (die auf allen gängigen Rechnern eingehalten werden): short real: Vorzeichen: ein Bit, Exponent: 8 Bit, Mantisse 23 Bit long real: Vorzeichen: ein Bit, Exponent:11 Bit, Mantisse 52 Bit

29 29 DigInf 05/06 Von-Neumann-Rechner John von Neumann schlägt 1945 ein Konzept für den Rechner EDVAC (Electronic Discrete Variable Arithmetic Compute) vor. Dieses Konzept sieht 5 Funktionseinheiten: Steuerwerk Rechenwerk Speicherwerk Eingabewerk Ausgabewerk Rechner, die dieser Architektur folgen, werden von- Neumann-Rechner genannt. Alle gängigen Computer sind von-Neumann-Rechner

30 30 DigInf 05/06 Von-Neumann-Rechner / Steuerwerk Das Herz des Rechners Aufgaben: Laden der Befehle aus dem Speicher in richtiger Reihenfolge Decodierung der Befehle Interpretation der Befehle Versorgung der an der Ausführung der Befehle beteiligten Funktionseinheiten mit den nötigen Steuersignalen Zuführung der Operanden für das Rechenwerk

31 31 DigInf 05/06 Von-Neumann-Rechner / Steuerwerk Abbildung


Herunterladen ppt "1 DigInf 05/06 Möglichkeiten für das Ende der Berechnung und Ergebnis: 1.TM hält an, das aktuelle T : Z  B ist das Ergebnis 2.  (q alt,T (C)) ist nicht."

Ähnliche Präsentationen


Google-Anzeigen