http://www .icp .uni-stuttgar t.de
Computergrundlagen Geschichte des Rechnens
Maria Fyta
Institut für Computerphysik
Universität Stuttgart
Wintersemester 2018/19
http://www .icp .uni-stuttgar t.de
Computer aus der Antike: Abakus
Chinesischer Abakus
• ein mehr als 3000 Jahre altes einfaches mechanisches Rechenhilfsmittel
• vermutlich um 1100 v. Chr. im indo-chinesischen Kulturraum erfunden
• enthält Kugeln, meist Holz- oder Glasperlen, beim vergleichbaren Rechenbrett kamen auch Münzen oder sogenannte Rechensteine zum Einsatz
• ermöglicht die Durchführung der Grundrechenarten Addition, Subtraktion, Multiplikation und Division sowie das Ziehen von Quadrat- und Kubikwurzeln.
M. Fyta Computergrundlagen 2/52
http://www .icp .uni-stuttgar t.de
Computer aus der Antike: Mechanismus von Anti- kythera
Fragmente B, A, und C des Mechanismus von Antikythera
• enthält eine Vielzahl von Zahnrädern in ähnlicher Anordnung wie in einer Räderuhr
• diente als Modell für die von der Erde aus beobachtbaren Bewegungen von Sonne und Mond mit Hilfe von Anzeigen auf runden Skalen
• 1900: von Schwammtauchern in einem Schiffswrack gefunden
M. Fyta Computergrundlagen 3/52
http://www .icp .uni-stuttgar t.de
1624: Rechenmaschine von W. Schickard
Wilhelm Schickard, 1592 - 1635
Nachbau der Rechenmaschine von W. Schickard
• erste mechanische Rechenmaschine
• beherrschte das Addieren und Subtrahieren bis zu sechsstelligen Zahlen
• einen „Speicherüberlauf“ signalisierte sie durch das Läuten einer Glocke
• für komplexere Berechnungen waren Napiersche Rechenstäbchen darauf angebracht
M. Fyta Computergrundlagen 4/52
http://www .icp .uni-stuttgar t.de
1642: Rechenmaschine von B. Pascal
B. Pascal, 1623 - 1662
Eine Pascaline aus dem Jahr 1652
• mechanische Rechenmaschine
• addierte & subtrahierte ganze Zahlen
• nicht programmierbar
M. Fyta Computergrundlagen 5/52
http://www .icp .uni-stuttgar t.de
1801: J.M. Jacquard und seine Lochkarten
J.-M. Jacquard, 1752-1834
Die Lochkartensteuerung der Jacquard-Maschine
• Weiterentwicklung des Webstuhls mit Lochkartensteuerung
• es handelt sich nicht um Karten, sondern um lange Lochstreifen und somit um eine frühe Anwendung der Digitaltechnik.
• endlose Muster von beliebiger Komplexität mechanisch hergestellt werden
• Grundstein zur heutigen Automatisierung
• der Webstuhl war die erste „programmierbare“ Maschine, deren Steuerung dauerhaft aufgehoben und später erneut verwendet werden konnte
M. Fyta Computergrundlagen 6/52
http://www .icp .uni-stuttgar t.de
1837: Analytical Engine von C. Babbage
C. Babbage, 1791 - 1871
• Vorläufer des modernen Computers
• sollte von einer Dampfmaschine angetrieben werden und wäre über 30m lang und 10m breit gewesen
• programmierbare mechanische Rechenmaschine
• 3 Lochkartenleser für Programm, Konstanten und Eingabezahlen
• 4 Grundrechenarten, Sprünge
• nie gebaut; Entwurf korrekt
M. Fyta Computergrundlagen 7/52
http://www .icp .uni-stuttgar t.de
1837: H. Hollerith
H. Hollerith, 1860-1929
Hollerith Tisch Lochkarte von 1980
• 1880: Hollerithmaschine bei der amerikanischen Volkszählung verwendet
• 1884: Lochkartenpatente: übertrug das Steuerungsverfahren mittels gelochter Karten auf organisatorische Problemstellungen
• Lochkarteneinsatzes zur Massendatenerfassung: Fahrkarten
• 1896: gründete die Tabulating Machine Company, die mit Computing Scale Corporation und der International Time Recording Company fusionierte in 1924 in International Business Machines Corporation (IBM) umbennnant wurde.
M. Fyta Computergrundlagen 8/52
http://www .icp .uni-stuttgar t.de
Die erste Computergeneration (1940-1959)
Quelle: Wikipedia
Eigenschaften (nicht in allen Rechner der ersten Generation):
• Vakuumröhre
• Ein(Aus)gabe durch Lochkarten
• ca. 1000 Schaltungen pro ft
3M. Fyta Computergrundlagen 9/52
http://www .icp .uni-stuttgar t.de
1941: Z3 von K. Zuse
K. Zuse,
1910 - 1995 Zuse Z1 Zuse Z3
Z1, 1937: programmierbare mechanische Rechenmaschine Z3, 1941: elektromechanischer Rechner:
Relais und Kernspeicher
Z4, 1945: der einzige funktionierende Computer in Europa; erster kommerzielle Computer weltweit
• 0,9 / 1,4 Flops (Fliesskomma-Operationen / Sekunde)
• Programm und Daten über eigene Lochkartenleser
• im 2. Weltkrieg zerstört, Rekonstruktion in München
M. Fyta Computergrundlagen 10/52
http://www .icp .uni-stuttgar t.de
1941: Atanasoff-Berry Computer
• wurde von J.Atanasoff und C. Berry in den Jahren 1937-1941 gebaut
• Röhrencomputer; keine mechanischen Teile zur Durchführung der Berechnungen
• Nutzung des binären Zahlensystems
• Trennung von Berechnungseinheit und Speicher
• könnte gleichzeitig 29 lineare Gleichungen verarbeiten
• Bausteine für binäre Arithmetik wurden für das erste Mal eingesetzt
M. Fyta Computergrundlagen 11/52
http://www .icp .uni-stuttgar t.de
1943: Colossus
• Colossi früher in England zur Entzifferung von geheimen Nachrichten während des 2. Weltkriegs gebaut
• Röhrencomputer (aus 1500 Röhren in 1943)
• Erlaubte die Entzifferung einer Nachricht innerhalb weniger Stunden
• Der Speicher bestand aus 5 Zeichen die photoelektrisch von einem Lochstreifer gelesen wurden
• 5000 Zeichen/Sekunde konnten bearbeitet werden
M. Fyta Computergrundlagen 12/52
http://www .icp .uni-stuttgar t.de
1944: Harvard Mark I
H.H. Aiken, 1900-1973
• wurde von der Harvard Universität entwickelt und von IBM gebaut
• vollständig aus elektromechanischen Bauteilen gebauter Computer
• Gewicht von 5 Tonnen; Frontlänge von 16m
• wurde von US-amerikanischen Marine für ballistische Berechnungen genutzt
M. Fyta Computergrundlagen 13/52
http://www .icp .uni-stuttgar t.de
1946: ENIAC
• Erster rein elektronischer Universalrechner (Mauchly und Eckert)
• 350 Flops (Fließkommasahlrechnungen pro Sekunde)
• Grundrechenarten + Wurzeln [Addition/Subtraktion in 0.2 ms, Multiplikation bis zu 2.8 ms, Division bis zu 24 ms, Quadratwurzel mehr als 300 ms]
• Programmeingabe durch Verdrahtung (einzelnen Komponenten mit Kabeln verbinden und die gewünschten Operationen auf
Drehschaltern einstellen)
• 1948 Einbau eines Befehlsspeichers
• ca. hundert Programmierer (auch Frauen-zuvor ballistische Berechnungen an mechanischen Tischrechnern angestellt)
M. Fyta Computergrundlagen 14/52
http://www .icp .uni-stuttgar t.de
Von Neumann-Architektur (1945)
J. von Neumann, 1903 - 1957
arithmetic logic
unit control
unit CPU
accumulators
memory
0 1 2 3 4 5 6 7 8 9 10 ...
input/output
• Grundlage aller modernen Rechnerarchitekturen nach ENIAC
• ein linearer Ganzzahl-Speicher für Programme und Daten
• random access memory (RAM) – Speicher mit wahlfreiem Zugriff
• Befehle sind Zahlen im Speicher, können überschrieben werden und werden sequenziell abgearbeitet
• Befehlszähler enthält die Adresse des aktuellen Befehls; wird normalerweise hochgezählt
• Sprünge und Verzweigung sind spezielle Befehle
M. Fyta Computergrundlagen 15/52
http://www .icp .uni-stuttgar t.de
Die zweite Computergeneration (1960-1964)
Der Transistor (1947, J. Bardeen, W. Brattain, W. Schockley) könnte die Elektronenröhre als Schalt-, Steuer-,Speicher- und Verstärkerelement in
Computeranlagen weitgehend ablösen.
Die Rechengeschwidigkeit wird auch erhöht.
Eigenschaften: Transistoren und ca. 100000 Schaltungen pro ft
3M. Fyta Computergrundlagen 16/52
http://www .icp .uni-stuttgar t.de
1960: UNIVAC LARC
LARC in Lawrence Radiation Laboratory
• Der erster Versuch einen Supercomputer zu bauen
• 2 CPUs (eine für die Berechnungen und eine für das Ein/Ausgabe System), 500 kFlops
• Lösung von Differenzielgleichungen
M. Fyta Computergrundlagen 17/52
http://www .icp .uni-stuttgar t.de
1961: IBM 7030 STRETCH
Die Konsolle
die 33ft Länge
• Langsamer als erwartet, aber von 1961 bis 1964 der schnellste Rechner der Welt
• Im Maximalbau standen 2262.144 Wörter (2MByte) zur Verfügung
• Die Breite der Befehlwörter war schaltbar zwischen 32Bit und 64Bit.
• Erster Vertreter der 64-Bit-Architektur.
M. Fyta Computergrundlagen 18/52
http://www .icp .uni-stuttgar t.de
Die dritte Computergeneration (1964-1975)
• Fortschreitende Miniaturisierung und Integration der Bauteile von elektronischen Schaltungen
• Transistoren und Dioden werden zusammen mit Kondensatoren und Widerständen zu Funktionsgruppen (Modul)
zusammengefaßt
• 160000 Additionen in eine Sekunde statt 1300 Additionen in der gleichen Zeit von einen Computer der 2. Generation.
Eigenschaften:
• großflächige integrierte Schaltkreise (integrated circuit)
• ca. 10
6Schaltungen pro ft
3M. Fyta Computergrundlagen 19/52
http://www .icp .uni-stuttgar t.de
1964: IBM System/360
Quelle:Computer Pictures Database
• Eine Großrechnerarchitektur
• "General purpose"(360 Rad von Anwendungen)
• 32- oder 64-Bit Gleitkommawerte mit hexadezimaler Basis.
• In den letzten 40 Jahren kontinuierlich weiterentwickelt (zur Zeit die System z Architektur).
M. Fyta Computergrundlagen 20/52
http://www .icp .uni-stuttgar t.de
1965: RCA Spectra 70 Series
RCA Spectra 70 Model 46
• Viele CPU Modelle
• Speicher Kapazität erstreckt sich von 4,096 bytes (70/15 Model) bis 524,288 bytes (70/55 Model).
• Gleichzeitige Ein- und Aus-gabe möglich.
M. Fyta Computergrundlagen 21/52
http://www .icp .uni-stuttgar t.de
Die vierte Computergeneration (1975-2000er)
Eingeleitet durch die Entwicklung integrierter Schaltkreise (Integrated Cir- cuit - IC); einzelne Bauteile wurden mit ihren Verbindungsleitungen in das Innere von Siliziumkristallen ’integriert’.
Eigenschaften:
• (sehr) großflächige integrierte Schaltkreise
• kontinuierliche Miniaturisierung
• 10
9Schaltungen pro ft
3M. Fyta Computergrundlagen 22/52
http://www .icp .uni-stuttgar t.de
1976: Apple I / II
• 1976: Apple I, erster „Serien“-PC, 100 Exemplare
• 1977: Apple II, 2 Millionen Exemplare
• 8-bit CPU (6502), 48kB RAM, 1000 Flops
• Massenmarkt: C64 – 30 Millionen Exemplare
• Grund: zahlreiche Computerspiele
• Erst ab ca 1990 setzen sich IBM-kompatible Heim-PCs durch.
M. Fyta Computergrundlagen 23/52
http://www .icp .uni-stuttgar t.de
1982: Cray X-MP
Konsole von CRAY X-MP/48
CRAY X-MP/24 im Barcelona Supercomputing Center
• Hauptentwickler Steve Chen
• 1983-1985: der schnellste Computer der Welt
• theoretische Rechenleistung von 200 Megaflops pro Prozessor
• 2 oder 4 Prozessoren
• Verbesserte Unterstützung für verkettete Berechnungen, parallele arithmetische Pipelines und Zugriff auf geteilten Speicher über mehrere Pipes.
M. Fyta Computergrundlagen 24/52
http://www .icp .uni-stuttgar t.de
1984: HP 9000
HP 9000 715
• Ab 1982 baut Hewlett Packard Workstations und Server-Systeme
• 16- und 32bit Workstations.
M. Fyta Computergrundlagen 25/52
http://www .icp .uni-stuttgar t.de
2008: Intel Nehalem
quadruple associative Instruction Cache 32 KByte, 128-entry TLB-4K, 7 TLB-2/4M per thread
Prefetch Buffer (16 Bytes) Predecode &
Instruction Length Decoder Instruction Queue 18 x86 Instructions Alignment MacroOp Fusion
Complex
Decoder Simple
Decoder Simple Decoder Simple Decoder
Decoded Instruction Queue (28 µOP entries) MicroOp Fusion Loop Stream Decoder
2 x Register Allocation Table (RAT) Reorder Buffer (128-entry) fused 2 x
Retirement Register File
Reservation Station (128-entry) fused
Store Addr.
Unit AGU
Load Addr.
Unit AGU Store Data
Micro Instruction Sequencer
256 KByte 8-way, 64 Byte Cacheline, private L2-Cache
512-entry L2-TLB-4K Integer/
MMX ALU, Branch SSE ADD Move
Integer/
MMX ALU SSE ADD Move FP ADD
Integer/
MMX ALU, 2x AGU SSE MUL/DIV Move FP MUL
Memory Order Buffer (MOB) octruple associative Data Cache 32 KByte,
64-entry TLB-4K, 32-entry TLB-2/4M Branch Prediction global/bimodal, loop, indirect jmp 128
Port 4 Port 3 Port 2 Port 5 Port 1 Port 0
128 128
128 128 128
Result Bus 256
Quick Path Inter- connect
DDR3 Memory Controller
Common L3-Cache 8 MByte Uncore
4 x 20 Bit 6,4 GT/s
3 x 64 Bit 1,33 GT/s
Intel Nehalem microarchitecture
To Input/Output Control unit
To Memory
ALUs + FPUs
• Ein Nehalem-Kern ist auch noch eine von Neumann-CPU
• ... aber mit 50-100 Gigaflops
• Millionen verkaufte Einheiten — pro Jahr
M. Fyta Computergrundlagen 26/52
http://www .icp .uni-stuttgar t.de
Mooresches Gesetz
Verdopplung (jede 12-24 Monate) der Komplexität intergrierter Schaltkreise (und Integrationsdichte, i.e. Transistoren/Fläche) mit minimalen Komponentenkosten.
M. Fyta Computergrundlagen 27/52
http://www .icp .uni-stuttgar t.de
Die fünfte Computergeneration (aktuell und Zukunft) Zusammenstellung von charakteristischen Technologien
• extrem großflähige integrierte Schaltkreise
• Parallelverarbeitung integrierter Schlaltkreise
• superschnelle Logic- und Speicherchips
• Integration von Sprache und Daten für wissens-basierte Plattformen
• Erstellung von virtuelle Realität
• Satelliten-Links (Telekommunikationsnetz)
• Ziel: Enwicklung von Geräten die zur natürliche Spracheingabe reaggieren, lernfähig und selbstorganisierend sind
• Zukünftige Entwicklungen
• Biocomputer (Nützung biologischer Systeme)
• Verknüpfung zwischen biologischer und technischer Informationsverarbeitung
• Quantencomputer (optische Signalverarbeitung)
M. Fyta Computergrundlagen 28/52
http://www .icp .uni-stuttgar t.de
Rechnenarchitekturen in BW
Konfiguration des ForHLR II - SCC Karlsruhe
Quelle: https://www.scc.kit.edu/
M. Fyta Computergrundlagen 29/52
http://www .icp .uni-stuttgar t.de
Parallelisierung: parallele Programmierung
• Ein Computerprogramm in einzelnen Abschnitten aufteilen, die nebenläufig ausgeführt werden können
• Nebenläufige Programmabschnitte synchronisieren
• Effizienzsteigerung (mehrere Prozessorkerne)
• Programmteile werden in separaten Prozessen oder Threads (Teil eines Prozesses) ausgeführt
• Multi-tasking: Programmteile können auch quasi-parallel ausgeführt werden; mehrere unabhängige Prozesse laufen nebeneinander
M. Fyta Computergrundlagen 30/52
http://www .icp .uni-stuttgar t.de
Parallelisierung: Effizienz Architekturen
• Computercluster: Anzahl von vernetzten Rechnern
• Mehrere CPUs
• Multicore-Prozessoren (SMP-synmmetric multiprocessing; ≥2 identische Prozessoren besitzen gemeinsamen Adressraum)
• GPUs (Grafikkarten - Daten werden so umgewandelt, dass der Monitor oder Beamer alles als Bild wiedergeben kann)
Protokolle
• Message Passing Interface (MPI): beschreibt den
Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen
Implementierungen: C++, C, Fortran, C#, Python, Java, Perl, R
• OpenMPI (C, Fortran), parallel python, ...
Wichtig: Entsprechende Compilers müssen verwendet werden und der Code muss von der Parallelisierung profitieren!
M. Fyta Computergrundlagen 31/52
http://www .icp .uni-stuttgar t.de
Modernes Rechnen
• Grid Computing: virtueller Supercomputer aus Cluster gekoppelten Rechnern ( z.B. Proteinfaltung: Folding@home http://folding.stanford.edu/ )
• Cloud Computing: IT-Infrastrukturen (Rechenkapazität, Datenspeicher, Netzwerkkapazitäten, Software) dynamish über einen Netzwerk zu Verfügung zu stellen
• Autonomic Computing: Selbstmanagement ( Selbstkonfiguration, Selbstoptimierung, usw. )
• Ubiquitous Computing - ubicomp (Rechnerallgegenwart):
Internet mit mobilen Anwendungen über seine klassische Domäne hinaus ausbreiten ( PC sollte als Gerät verschwinden und durch ’intelligente Gegenstände’ ersetzt werden)
• Wearable Computing (tragbare Datenverarbeitung):
Entwicklung von tragbaren Computersystemen ( Computersystem, das während der Anwendung am Körper des Benutzers befestigt ist, z.B. Google Glass Projekt )
• ...
M. Fyta Computergrundlagen 32/52
http://www .icp .uni-stuttgar t.de
Boolesche Logik, Zahlensysteme und
Arithmetik
http://www .icp .uni-stuttgar t.de
Wie rechnet ein Computer?
Ein Mikroprozessor
• ist ein Netz von Transistoren, Widerständen und Kondensatoren
• Leitungen kennen nur zwei Zustände: Spannung oder nicht
• Interpretation als ja/nein, 0/1, an/aus, richtig/falsch...
• Schaltungen entsprechen logischen Operationen
Die richtige Algebra (das richtige Zahlensystem) musst verwendet werden um damit rechnen zu können.
Computergrundlagen 34/52
http://www .icp .uni-stuttgar t.de
Aussagenlogik
G. Boole, 1815 - 1864
• erlaubt formale Beweise über logische Aussagen
• Grundlage der Computerlogik
• kann mathematisch als Algebra formalisiert werden (boolesche Algebra)
• Anwendung auch in Computerprogrammieren
• die Operatoren dienen zur Beschreibung der boolschen Funktion digitaler Schaltungen (hohe bzw. niedrige Spannung)
Computergrundlagen 35/52
http://www .icp .uni-stuttgar t.de
Die zweielementige boolesche Algebra Wir betrachten eine Menge
• mit zwei Elementen 1 („wahr“) und 0 („falsch“)
• mit zwei Verknüpfungen ∨ („oder“) und ∧ („und“)
• mit einer einstelligen Verknüpfung ¬ („nicht“, Negation) Ferner gilt für beliebige a, b, c ∈ {0, 1}:
1. a ∨ (b ∨ c) = (a ∨ b) ∨ c,
a ∧ (b ∧ c) = (a ∧ b) ∧ c (Assoziativität) 2. a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c),
a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) (Distributivität) 3. a ∨ b = b ∨ a, a ∧ b = b ∧ a (Kommutativität) 4. a ∨ (a ∧ b) = a, a ∧ (a ∨ b) = a (Adsorption) 5. a ∨ ¬a = 1, a ∧ ¬a = 0 (Komplemente)
Computergrundlagen 36/52
http://www .icp .uni-stuttgar t.de
Abgeleitete Gesetze
• Neutralität:
a ∨ 0 = a, a ∧ 1 = a
• Idempotenz:
a ∨ a = a, a ∧ a = a
• Extremalgesetze:
a ∨ 1 = 1, a ∧ 0 = 0
• Doppelnegation: ¬(¬a) = a
• Dualität:
¬0 = 1, ¬1 = 0
• De Morgansche Gesetze:
¬(a ∨ b) = ¬a ∧ ¬b, ¬(a ∧ b) = ¬a ∨ ¬b
Die zweielementige boolesche Algebra entspricht genau unserem Verständnis von Logik.
Computergrundlagen 37/52
http://www .icp .uni-stuttgar t.de
Was sind Zahlensysteme?
• Ein Zahlensystem wird zur Darstellung von Zahlen verwendet.
• Jede ganze Zahl B ≥ 2 kann als Basis(B) verwendet werden.
• Die Stelle bestimmt den Wert der Ziffer (die „niederwertigste“
Position steht dabei im Allgemeinen rechts, z.B. die erste 3 in 373 hat einen anderen Wert als die zweite 3 dreihundert nicht drei).
• Der Ziffernvorrat ist 0 bis B-1.
• Die Zifferposition bestimmt den Stellenwert B
n, entspricht eine Potenz der Basis.
• Zwei benachbarte Stellenwerte unterscheiden sich um den Faktor B.
• Die gängigsten Basen sind 2 (Dualsystem), 8 (Oktalsystem), 10 (Alltags Rechnen) oder 16 (das in der Informatik wichtige Hexadezimalsystem).
Computergrundlagen 38/52
http://www .icp .uni-stuttgar t.de
Was sind Zahlensysteme?
• Das System zur B=2 enthält nur 0 und 1.und wird für Computerrechnen und Datenspeichern verwendet.
• Die kleinste Informationseinheit (Bit) ist die Information über die Möglichkeiten 1 oder 0.
• In der Computertechnik wird oft das Hexadezimalsystem (Basis B=16) verwendet (0-9,A-F)
• Die Standardeinheit der Informationsgröße ist ein Byte (=8 Bit): die Information über eine aus 256 Möglichkeiten (die je zwei Zustände der acht Bits ermöglichen insgesamt 2
8=256 Möglichkeiten).
• In dezimaler Darstellung: 0, 1, 2, ... bis 255, im Binärsystem:
00000000, 00000001, 00000010, ... bis 11111111.)
• Mit dem 16er-System (immer genau 2 Ziffern entsprechen einem Byte) viel besser handhaben als mit dem Dezimalsystem.
Computergrundlagen 38/52
http://www .icp .uni-stuttgar t.de
Zahlensysteme: Eigenschaften
• Wie kann ich mit nur zwei Elementen Zahlen darstellen?
Sei B > 0 eine natürliche Zahl. Dann kann jede natürliche Zahl z eindeutig dargestellt werden als
z =
∞
X
i=0
B
nz
k,
wobei für alle k 0 ≤ z
k< B und nur endliche viele z
k6= 0.
Beispiel
B = 10 entspricht unserem Dezimalsystem:
1042 = 10
0· 2 + 10
1· 4 + 10
3· 1 = 1042
16B = 8 ergibt das Oktalsystem:
1042 = 8
0· 2 + 8
1· 2 + 8
3· 2 = 2022
8Computergrundlagen 39/52
http://www .icp .uni-stuttgar t.de
Binärsystem
• Wie kann ich mit nur zwei Elementen Zahlen darstellen?
Wir benutzen das Binärsystem mit B = 2 und Ziffern 0 und 1 (Bits)
Beispiele
1042 = 2
10+ 2
4+ 2
1= 10.000.010.010
2• Umrechnung von Binär- auf Dezimalzahlen ist umständlich
• Binär↔ oktal ist einfach:
10.000.010.010
2= 2022
8• Hexadezimal (B = 16, Ziffern 1–9, A–F) auch:
10.000.010.010
2= 412
161010.1111.1111.1110
2= AFFE
16Computergrundlagen 40/52
http://www .icp .uni-stuttgar t.de
Umwandeln von Binär in Hexadezimalzahlen und umgekehrt
• Jeweils 4 Binärstellen entsprechen einer Hexadezimalstelle (16 = 2
4).
• Umwandlung:
• Vom Binär- ins Hexadezimalsystem:
Unterteile die Binärzahl (rechts nach links) in 4er-Päckchen; wandle jedes Päckchen nach nebenstehender Tabelle in die entsprechende Hexadezimalziffer um.
• Vom Hexadezimal- ins Binärsystem: Wandle die
Hexadezimalziffern der Reihe nach in die entsprechenden vierstelligen Binärzahlen um.
Quelle:mathe-lexikon.at
Computergrundlagen 41/52
http://www .icp .uni-stuttgar t.de
Umwandeln von Binär in Oktalzahlen
• Jeweils 3 Binärstellen entsprechen einer Oktalstelle (8 = 2
3).
• Die Ziffern in Dreierblöcke
gruppieren (von rechts nach links),
• die entsprechenden oktalen Ziffern aus der Tabelle ablesen,
• falls Stellen über bleiben, die keine vollständige Dreier-Gruppe
ergeben, kann man sich statt dessen ’unsichtbare Nullen’
vorstellen (z.B. 10 ist mit 010 gleichbedeutend und umgekehrt die Dreiergruppe 001 ist
gleichbedeutend mit 1).
Quelle:mathe-lexikon.at
Computergrundlagen 42/52
http://www .icp .uni-stuttgar t.de
Darstellung reeller Zahlen
±1, 23456789 · 10 ± 123
• Eine Fließkommazahl besteht aus:
• Vorzeichen
• Mantisse
• (10er-)Exponent
• Stellen daher nur einen Teil der rationalen Zahlen exakt dar
• Alle anderen Zahlen werden angenähert
• Die Mantissenlänge bestimmt die Genauigkeit der Näherung Binär entsprechend:
±1, 0011110000001100101 · 2 ±1111011
Computergrundlagen 43/52
http://www .icp .uni-stuttgar t.de
IEEE-Fließkommazahlen
Speicherung einer 64-Bit-Fließkommazahl nach IEEE 754-Standard:
Bit
63 62 ... 5251 ... 0
± Exponent e Mantisse m
• Keine Komplementdarstellung von Mantisse oder Exponent
• Binärsystem: (normalisierte) Mantisse wird ohne führende Stelle gespeichert, die immer 1 ist
• Der 11-bittige Exponent e ist um (Bias=)1023 (127 in 32-Bit-Fließkommazahlen) verschoben gespeichert
und nimmt Werte von -1022 (e = 1) bis 1023 (e = 2046) an
• Der Wert einer Zahl ist also:
±1, m · 2 e − 1023
Computergrundlagen 44/52
http://www .icp .uni-stuttgar t.de
Spezielle Werte
Was ist mit den Exponenten −1023 (e = 0) und 1024 (e = 2047)?
Diese stellen spezielle Werte dar:
e = 0 und m = 0 ±0
e = 0 und m 6= 0 Zahlen der Form ±0, m · 2
−1022e = 2047 und m = 0 ±∞
e = 2047 und m 6= 0 ±NaN (not a number)
• Da die erste Stelle immer 1 ist, kann 0 nur so dargestellt werden
• ±∞ ergibt sich z.B. bei Berechnung von ±1/0
• ±NaN ergibt sich z.B. bei Berechnung von √
−1
• Python fängt NaNs mit Fehlern ab, nicht aber z.B. C
Computergrundlagen 45/52
http://www .icp .uni-stuttgar t.de
32-Bit gegen 64-Bit Fließkommazahlen
• 32-Bit: einfach-genaues Format (single precision)
• [Länge des Exponenten=8 Bit, Länge der Mantisse=23 Bit, Bias des Exponenten=127]
• Genauigkeit der Darstellung von ca. 7 Dezimalstellen
• z.B. bei einer Zahl wie 12.345,678 ist die dritte Stelle nach dem Komma schon ungenau
• in numerischen Berechnungen mit mehreren Rechenoperationen sinkt die Genauigkeit sehr stark → einfach genaues Format nicht ausreichent
• 64-Bit: doppelt genaues Format (double precision)
• [Länge des Exponenten=11 Bit, Länge der Mantisse=52 Bit, Bias des Exponenten=1023]
• Genauigkeit der Darstellung von ca. 16 Dezimalstellen.
Speicherplatz und Rechenleistung sind so reichlich vorhanden, dass man nur noch das doppelt genaue Format verwendet kann.
Computergrundlagen 46/52
http://www .icp .uni-stuttgar t.de
Subtraktion/Addition von Fließkommazahlen Beispiele:
1, 0 · 10
0+ 1, 0 · 10
−5= 1, 0 · 10
0+ 0, 00001 · 10
0= 1, 00001 · 10
01, 000002 · 10
0− 1, 000001 · 10
0= 0, 000001 · 10
0= 1, 0 · 10
−6• Verschieben der Mantisse der kleineren Zahl, bis beide denselben Exponenten haben
• Dabei gehen Stellen der kleineren Zahl verloren
• Dann gewöhnliche Addition/Subtraktion der Mantissen
• Schließlich den Exponenten verringern, bis die Mantisse keine führenden Nullen hat
Computergrundlagen 47/52
http://www .icp .uni-stuttgar t.de
Unterlauf/Überlauf
• In der Fließkommadarstellung gibt es eine kleinste(größte) positive Zahl,
• unter(über) diese Zahl kann kein Wert dargestellt werden
• in diesem Bereich wird die Zahl als 0(∞) repräsentiert
• im Falle eines Zwischenergebnisses ist die Information üeber das Ergebnis verloren
Zahlen verschiedener Größenordnung
• Die Addition/Subtraktion einer betragsmäßig viel kleineren Zahl ändert die größere Zahl nicht
in einer vierstelligen Dezimalarithmetik:
1e3 + 1e-2 =1, 000 · 10
3+ 1, 000 · 10
−2=1, 000 · 10
3+ 0, 000|010... · 10
2=1, 000 · 10
3+ 0, 000 · 10
3= 1e3
Computergrundlagen 48/52
http://www .icp .uni-stuttgar t.de
Auslöschung: falsches Ergebnis bei der Subtraktion fast gleich großer Zahlen
Ist x < 2
−lm, wobei l
mdie Bitlänge der Mantisse ist, so ist in Fliesskommaarithmetik
x → x + 1 − 1 → (x + 1) − 1 → 1 − 1 → 0
• Auslöschung der vorderen Stellen bei Subtraktion ungefähr gleich großer Zahlen führt zu fehlenden hinteren Stellen im Ergebnis
• Im Beispiel verschwindet die kleinere Zahl x komplett
• Ist x ≈ 2
−lm, verliert x fast alle signifikanten Stellen
• Formeln muss man umformen so dass keine Auslöschung passieren kann.
Computergrundlagen 49/52
http://www .icp .uni-stuttgar t.de
Beispiel: quadratische Gleichung
• Lösen der quadratischen Gleichung x
2+ ax + b = 0:
x
±= − a 2 ±
r a
2
2− b
• Bei kleinem b ist q
a 2
2