Repräsentation von Daten – Binärcodierung ganzer Zahlen

Werbung
Kapitel 3:
Repräsentation von Daten –
Binärcodierung ganzer Zahlen
Einführung in die Informatik
Wintersemester 2007/08
Prof. Bernhard Jung
Übersicht – Repräsentation von Daten im Computer
(dieses und nächstes Kapitel)
„
„
Einleitung
Codierung von ganzen Zahlen
‰
‰
„
„
Zahlensysteme
Rechnen im Dualsystem
Codierung von Gleitkommazahlen
Codierung von Text
Literatur
„ Küchlin & Weber. Einführung in die Informatik. 2005.
Kapitel 2, 31-44
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
1
Information und Daten
„
Information
‰ elementare Kategorie wie Stoff und Energie
Æ neues Wissen über einen Sachverhalt
Æ Beseitigung von Ungewissheit
‰
in Rechnern repräsentiert durch Daten
„
Information
Information
m.a.W.: Information = Daten mit Bedeutung
Kodierung
„
Daten
‰ = Folge von Bits, die einen Wert repräsentieren
„
„
„
Bit = elementare Informationseinheit: 0 oder 1 /
Nein oder Ja
1 Byte = 8 Bit
z.B. " 01000001
repräsentiert den
Buchstaben 'A' "
Interpretation
Daten
Daten
z.B. 01000001
Computer
‰ Technische Geräte für automatisierte
Datenverarbeitung
‰ Speichern, Umformen, Komprimieren, Transport,
Eingabe, Ausgabe von Daten
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Informationsdarstellung
„
Bit: 0 oder 1
‰
‰
‰
„
"BInary digiT" (Binärziffer)
Informationsmenge in einer Antwort auf eine Frage mit zwei Möglichkeiten
z.B. ja oder nein, wahr oder falsch, schwarz oder weiß, ...
Bitfolgen
‰
Zur Darstellung von Antworten auf Fragen mit mehr als zwei Möglichkeiten
‰
z.B. 4 Möglichkeiten Süd, West, Nord, Ost
„
00, 01, 10, 11
‰
z.B. 8 Möglichkeiten Süd, West, Nord, Ost, Südost, Nordwest, Nordost, Südwest
„
000, 001, 010, 011, 100, 101, 110, 111
‰
Jedes zusätzliche Bit verdoppelt die Anzahl der möglichen Bitfolgen!
‰
Es gibt genau 2N mögliche Bitfolgen der Länge N
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
2
Informationsdarstellung
„
Daten Æ Information
‰
‰
viele mögl. Interpretationen von Bytes
z.B. Byte 65
„
„
„
„
„
in ASCII oder Latin-1 als Buchstabe 'A'
in Soundfile als kurzes Stück Sound (z.B., 1/44100 einer Sekunde)
Rot-Anteil eines Pixels in einem (RGB-)Bild
Rot-Anteil eines Pixels von einem Bild, das Teil eines Films ist
Multimedia = Unimedia (N. Negroponte, MIT Medialab)
‰
alle digitalen Medien (Ton/Bild/Film) auf unterster Ebene repräsentiert
durch Bits & Bytes
Prof. B. Jung
TU Bergakademie Freiberg
Grundlagen der Informatik, WS 2007/08
Informationsdarstellung - Digitaler Sound
Sampling
aufgenommene Sound-Welle
Sequenz-von Sound-Samples
einer einfachen Sound-Welle
59
19
-1
-111
-30
18
18
1
2
3
4
5
6
7
Sound als Feld (Array) von Samples
• z.B. jedes Sample kodiert mit 16 Bit / 2 Bytes (-32768…32767)
• z.B. 44100 Samples pro Sekunde
• d.h. 3-Minuten Song benötigt 158.760.000 Samples (Stereo × 2)
Digitale Soundverarbeitung = Manipulation von Feldern
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
3
Informationsdarstellung –
Digitale Bilder
„
RGB (Rot-Grün-Blau)
‰
‰
‰
„
Farben werden als Kombination von Rot-, Grün-, Blau-Anteilen repräsentiert
Mit jedem Pixel ist ein Rot-, ein Grün- und ein Blauwert assoziiert
Die Werte liegen typischerweise im Bereich 0..255 (8 Bit)
Bilder als Matrizen von Pixeln
‰
Digitale Bildverarbeitung = Manipulation von Matrizen
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Zahlensysteme
Römische Zahlen
Prof. B. Jung
4
Zahlensysteme
Leibniz-Traktat bezüglich Dualzahlen von 1679
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Zahlensysteme
Positionssysteme bei natürlichen Zahlen
„
„
Ein Positionssystem mit der Basis B ist ein Zahlensystem, in dem eine
Zahl x nach Potenzen von B zerlegt wird
Eine natürliche Zahl n wird durch folgende Summe dargestellt:
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
5
Zahlensysteme
Zahlendarstellung in verschiedenen Zahlensystemen
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Zahlensysteme
Positionssysteme bei gebrochenen Zahlen
„
Bei gebrochenen Zahlen trennt ein Punkt (Komma im Deutschen) in
der Zahl den ganzzahligen Teil der Zahl vom gebrochenen Teil
(Nachkommateil). Solche Zahlen lassen sich durch folgende
Summenformel beschreiben:
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
6
Zahlensysteme
Positionssysteme bei gebrochenen Zahlen
„
Beispiele:
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Dual-, Oktal- und Hexadezimalsystem
„
In der Informatik spielen das Dual-, Oktal- und
Hexadezimalsystem eine zentrale Rolle
„
Das Dualsystem und das Bit im Rechner
‰
‰
Das von uns verwendete Zehnersystem ist ein Positionssystem. Jeder
Position in einer Zahl ist ein bestimmter Wert zugeordnet, der eine
Potenz von 10 ist
Das Zehnersystem, in dem 10 verschiedene Ziffern 0, 1, 2,…, 9
existieren, ist technisch schwer zu realisieren. Daher benutzt man in
Rechnern intern das Dualsystem, bei dem nur zwei Ziffern, 0 und 1,
verwendet werden, die sich technisch relativ leicht nachbilden lassen:
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
7
Dual-, Oktal- und Hexadezimalsystem
„
„
„
„
Prof. B. Jung
Eine einzelne Binärstelle (0 oder 1), die ein Rechner speichert, wird als Bit
(„BInary digiT“, also Binärziffer) bzeichnet.
Ein Bit ist die kleinste Informationseinheit, die ein Computer verarbeiten kann.
Auch beim Dualsystem handelt es sich um ein Positionssystem.
Der Wert einer Position ist hier jedoch eine Potenz von 2:
Beispiele:
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Dual-, Oktal- und Hexadezimalsystem
‰
Konvertieren zwischen Dual- und Oktalsystem
„
„
Prof. B. Jung
Neben dem Dualsystem ist in der Informatik noch das Oktalsystem wichtig,
da es in einer engen Beziehung zum Dualsystem steht. Es gilt nämlich: 23 = 8
(Basis des Oktalsystems).
Um eine im Dualsystem dargestellte Zahl ins Oktalsystem zu konvertieren,
bildet man von rechts beginnend so genannte Dualtriaden (Dreiergruppen).
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
8
Dual-, Oktal- und Hexadezimalsystem
„
Konvertieren zwischen Dual- und Oktalsystem
‰
‰
Bei der Umwandlung einer Oktalzahl in ihre Dualdarstellung geht man
den umgekehrten Weg.
Es ist offensichtlich, dass ein Mensch sich die Zahl 3614(8) wesentlich
leichter merken und damit umgehen kann, als 011110001100(2).
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Dual-, Oktal- und Hexadezimalsystem
„
Konvertieren zwischen Dual- und Hexadezimalsystem
‰
‰
Neben dem Dualsystem ist in der Informatik noch das
Hexadezimalsystem wichtig, da es ebenfalls in einer engen Beziehung
zum Dualsystem steht. Es gilt nämlich: 24 = 16.
Um eine im Dualsystem dargestellte Zahl ins Hexadezimalsystem zu
konvertieren, bildet man von rechts beginnend so genannte Dualtetraden
(Vierergruppen).
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
9
Konvertierungsalgorithmen: Konvertieren von
anderen Systemen in das Dezimalsystem
„
Eine in einem Positionssystem mit der Basis B dargestellte natürliche
Zahl n:
n = ∑i =0 bi ⋅ B
N
i
lässt sich mit Hilfe des Hornerschemas wie folgt darstellen:
Mit Hilfe dieser Darstellung können Konvertierungen in das Dezimalsystem einfach
durchgeführt werden.
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Konvertieren vom Dezimalsystem in andere
Systeme
„
1.
2.
3.
Für die Umwandlung einer Dezimalzahl x in ein Zahlensystem mit der
Basis n kann folgender Algorithmus verwendet werden:
x : n = y Rest z
Falls y ungleich 0:
Mache y zum neuen x und fahre
wieder mit Schritt 1 fort
Die ermittelten Reste von unten
nach oben gelesen liefern die
gewünschte Dualzahl
Ergebnis (z von unten nach oben gelesen):
Prof. B. Jung
(30)10 = (11110)2
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
10
Konvertieren vom Dezimalsystem in andere
Systeme
„
1.
2.
3.
Beispiel (2)
x : n = y Rest z
Falls y ungleich 0:
Mache y zum neuen x und fahre
wieder mit Schritt 1 fort
Die ermittelten Reste von unten
nach oben gelesen liefern die
gewünschte Dualzahl
Ergebnis (z von unten nach oben gelesen):
Prof. B. Jung
(43)10 = (101011)2
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Rechenoperationen im Dualsystem
Addition von Dualzahlen
„
Für die duale
Addition gilt
allgemein:
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
11
Rechenoperationen im Dualsystem
Subtraktion u. negative Zahlen
„
Negative Zahlen werden üblicherweise durch ihren Betrag mit
vorangestelltem Minuszeichen dargestellt.
‰
‰
‰
‰
‰
Diese Darstellung wäre auch rechnerintern denkbar, hat jedoch den
Nachteil, dass man eine gesonderte Vorzeichenrechnung durchführen
müsste und man ein Rechenwerk benötigt, das sowohl addieren als auch
subtrahieren kann.
Man kann die Subtraktion auf eine Addition zurückzuführen durch das
Verfahren der Komplementbildung
Idee: a − b = a + b , wobei b das Komplement ist
Man unterscheidet zwei Arten der Komplementbildung, wobei B für das
Zahlensystem steht:
B-Komplement und (B-1)-Komplement
Da das B-Komplement technisch leichter realisierbar ist, wird vorwiegend
mit dem B-Komplement (Zweier-Komplement) gearbeitet.
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Rechenoperationen im Dualsystem
B-Komplement
„
Zuordnung der Bitkombinationen zu positiven und negativen Zahlen
Zahlenring für vier Bits, erstes Bit ist Vorzeichenbit
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
12
Rechenoperationen im Dualsystem
B-Komplement
„
Regeln für die Bildung eines Zweier-Komplements
‰
‰
Ist das 1. Bit 1, so handelt es sich um eine negative Zahl.
Der Wert einer negativen Zahl wird dann im Zweier-Komplement
dargestellt. Zweier-Komplement zu einem Wert bedeutet, dass zunächst
jedes einzelne Bit invertiert (umgedreht) wird, und dann auf die so
entstandene Bitkombination die Zahl 1 aufaddiert wird.
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Rechenoperationen im Dualsystem
B-Komplement
„
Bei der Verwendung der Komplement-Darstellung muss eine
Maschine nicht subtrahieren können, sondern kann jede Subtraktion
a - b durch eine Addition a + -b realisieren.
Das vorne überlaufende Bit wird weggeworfen!
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
13
Rechenoperationen im Dualsystem
B-Komplement
„
„
Im Beispiel hat der vorne stattfindende Überlauf des Bits keinen Einfluss auf
die Richtigkeit des Ergebnisses.
Das gilt nicht allgemein. Wenn das Ergebnis nicht im darstellbaren
Zahlenbereich liegt, dann erhält man bei einem Überlauf ein falsches
Ergebnis:
Überlauf erkennbar: Addition zweier neg. Zahlen muss neg. Ergebnis liefern!
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Rechenoperationen im Dualsystem
(B-1)-Komplement
„
„
(B-1)-Komplement (Einer-Komplement) zum Vergleich.
Die Zahlendarstellung ist hier symmetrisch.
Es gibt eine positive und eine negative 0.
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
14
Rechenoperationen im Dualsystem
(B-1)-Komplement
„
Regeln für die Bildung eines Einer-Komplements
‰
‰
‰
Ist das 1. Bit mit 1 besetzt, so handelt es sich um eine negative Zahl (eventuell
die negative Null 111…111).
Der Wert einer negativen Zahl wird dann im Einer-Komplement dargestellt.
Einer-Komplement zu einem Wert bedeutet, dass zunächst jedes einzelne Bit
invertiert (umgedreht) wird.
Führt die Addition des Komplements zum Überlauf einer 1, muss zum Ergebnis
diese 1 hinzuaddiert werden („Einer-Rücklauf “).
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
Rechenoperationen im Dualsystem
Multiplikation und Division
„
Die ganzzahlige Multiplikation bzw. Division wird in einem Rechner
allgemein mittels wiederholter Addition durchgeführt
‰
„
z.B. 5 *3:
00101 + 00101 + 00101 = 01010 + 00101 = 01111
In den Sonderfällen des Multiplikators bzw. Divisors von 2, 4, 8, …
kann die Multiplikation bzw. Division aber einfacher und schneller
durch eine Verschiebung (Shift) von entsprechend vielen Bits nach
links bzw. rechts erfolgen:
Bei 2 (21) um 1 Bit, bei 4 (22) um 2 Bits, bei 8 um 3 (23) Bits usw.
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
15
Byte-Reihenfolge bei der Speicherung ganzer Zahlen –
Little Endian und Big Endian
„
Ganze Zahlen werden im Rechner i.d.R. durch
mehrere Bytes repräsentiert
‰
„
„
„
Little Endian
7..0
Zahl an Adresse n belegt dann die
31..24 23..16 15..8
7..0
Speicherstellen n, n+1, n+2, n+3
Big Endian
Frage: Steht an Adresse n dann das Byte mit den
n n+1 n+2 n+3
niederwertigsten oder das Bytes mit den
höchstwertigsten Bits?
Beide Antworten sind möglich!
‰
‰
„
typisch: 4 Bytes (integer)
n+3 n+2 n+1 n
31..24 23..16 15..8
Little Endian: z.B. Intel, AMD
Big Endian: z.B. Sparc, IBM Mainframe
Dieser Unterschied macht (nur) dann große
Probleme, wenn ein Wort byteweise zwischen
verschiedenen Computern übermittelt wird
Beispiel: Repräsentation von 1025
Prof. B. Jung
Grundlagen der Informatik, WS 2007/08
TU Bergakademie Freiberg
16
Herunterladen