29
Raphael Wimmer · Lehrstuhl für Medieninformatik Institut für Information und Medien, Sprache und Kultur Fakultät für Sprach-, Literatur- und Kulturwissenschaften Bits, Bytes und Kodierung Vorlesung “Einführung in die Informatik und Medieninformatik | SS 2013

UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Embed Size (px)

Citation preview

Page 1: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Raphael Wimmer · Lehrstuhl für MedieninformatikInstitut für Information und Medien, Sprache und KulturFakultät für Sprach-, Literatur- und Kulturwissenschaften

Bits, Bytes und KodierungVorlesung “Einführung in die Informatik und Medieninformatik | SS 2013

Page 2: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 2/29

Übersicht

Zahlensysteme, Hexadezimalzahlen Repräsentation von Daten im Rechner Binäre Kodierung von Zahlen

● Zweierkomplement● Fließkommazahlen

Binärkodierung beliebiger Daten

Page 3: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 3/29

Hexadezimalzahlen

Page 4: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 4/29

Kodierung (ganzer) Zahlen (n) auf der Basis von Stellenwertsystemen der Form

Gebräuchlich: Binär-, Oktal-, Dezimal-, und Hexadezimalsytem (Basen 2, 8, 10, 16)

Systeme mit einer Basis > 10 benötigen zusätzliche Ziffern für die Codierung

Zahlensysteme

Stellender Anzahl

)0 ,ganzzahlig ( Ziffern

emsZahlensyst des Basis

:mit 1

0

=<≤=

=

⋅= ∑−

=

N

Bbbb

B

Bbn

ii

N

i

ii

Page 5: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 5/29

Page 6: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 6/29

Hexadezimal/Dezimal

21C16256 16 1

= 540

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

Es können Groß- oder Kleinbuchstabenverwendet werden.

0XEE = 0xee

Page 7: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 7/29

Warum Hexadezimalzahlen?

→ Hexadezimalzahlen benötigen weniger Stellen als Dezimalzahlen und sind leicht in Binärdarstellung umzurechnen

1234567890 in Binärdarstellung:

0b1001001100101100000001011010010

In Hexadezimaldarstellung:

0x499602D2

Page 8: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 8/29

Repräsentation im Rechner

Page 9: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 9/29

Bits & Bytes

Bit:

● Binärziffer (Binary Digit), Stelle einer Binärzahl („Das niedrigste Bit ist gesetzt, also ist die Zahl ungerade“)

● Maßeinheit für Datenmenge („Zum Speichern der Matrikelnummer benötigen wir 32 bit“)

Byte:

● Binärzahl mit 8 Bit (z.B. „0b01100110“)

● 256 verschiedene Werte

● in der Regel kleinste Einheit für Zugriff auf Daten

● lässt sich als zweistellige Hexadezimalzahl darstellen (0x00 - 0xff)

Page 10: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 10/29

Halbbyte (links, rechts, high end, low end, Nibble) (Maschinen-)Wort: zwei Byte oder auch: Anzahl der von

einem von-Neumann-Rechner in einem Schritt zu verarbeitenden Byte (also: 4 Byte bei einer 32 Bit-Architektur etc.)

Größenbezeichner (SI-Einheiten): kilo (k, 103), mega (M, 106), giga (G, 109), tera (T, 1012), peta (P, 1015), exa (E, 1018)

1 Kilobyte = 1 kB 1 Kilobit = 1 kb

Achtung: Manchmal wird in der Informatik „kilo“ = 210 verwendet. Für diese Einheit (1024 statt 1000) ist die Bezeichnung „kiB“ statt „kB“ (und MiB, GiB, …).

Weitere Größeneinheiten

Page 11: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 11/29

Datentypen

● Ein oder mehrere Bytes können zur Speicherung von bestimmten Datentypen verwendet werden

● Wie eine bestimmte Folge an Bytes interpretiert werden soll, muss im Programm oder der Programmiersprache definiert werden.

● Speicherndes und lesendes Programm müssen gleiche Definitionen für Datentypen verwenden

Page 12: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 12/29

Datentypen II

● Typische Datentypen in Programmiersprachen:● char/byte (1 Byte): Zeichen, ganze Zahl, Bitmuster (sehr flexibel!)

● int (4 Byte): Ganze Zahl

● float (4 Byte): Fließkommazahl

● Signed und Unsigned● Jeder Datentyp für ganze Zahlen kann entweder nur positive (unsigned) oder

positive und negative (signed) Werte speichern

● unsigned char: nur positive Zahlen, Wertebereich 0 – 255

● signed char (= char): negative Zahlen durch Zweierkomplement dargestellt,Wertebereich: -128 – +127

Page 13: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 13/29

RAM und HDD

RAM (Random Access Memory): Hauptspeicher im Rechner

HDD (Hard Disk Drive): Festplatte

Daten werden binär gespeichert:

● elektrisch geladene / ungeladene Zellen im RAM

● magnetisierte / unmagnetisierte Positionen auf der HDD

http://commons.wikimedia.org/wiki/File:Disque_dur.jpg http://commons.wikimedia.org/wiki/File:256MB_Memory.jpg

Page 14: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 14/29

Digitale Speicherung

RAM

1

0

Page 15: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 15/29

Speicherreihenfolge: Least Significant Bit ist relevant

011001012

LSB

oder

1 2 4 8 16 32 64 128

LSB (least significant bit)128 64 32 16 8 4 2 1

Notwendige Unterscheidung, wenn man auf der Ebene einzelner Bits arbeitet.

101001102

In der Regel übernimmt das Betriebssystem die korrekte Interpretation

Page 16: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 16/29

Überlauf / Overflow

Überlauf geschieht, wenn das Ergebnis einer Rechenoperation nicht mehr in den vorgesehenen Datentyp passt.

Triviale Behandlung: „überstehende“ Bits werden abgeschnitten

Problem: Information geht verloren, falsches Ergebnis entsteht

Aber: elegante Tricks werden möglich, die dieses Verhalten ausnutzen

LSB

128 64 32 16 8 4 2 1

+

=

Page 17: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 17/29

Codierung eines Wertebereiches von 2n (z.B. für n = 8)• 0• positive Zahlen bis 2n-1 (hier: 1 … 7 )• negative Zahlen bis -2n (hier: -8 … -1)

Idee („Zweierkomplementdarstellung“): • höchstwertiges Bit (links) dient der Codierung des Vorzeichens

• 0 +→

• 1 -→

Vorzeichen einer Zahl ändern (d.h. eine negative Zahl generieren):

• Alle Bits invertieren (1 0, 0 1)→ →

• 1 addieren, eventuellen Überlauf ignorieren

Vorteil: positive und negative Zahlen können direkt addiert/subtrahiert werden

Darstellung negativer Zahlen

Page 18: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 18/29

Zweierkomplementdarstellung

Beispiel (4 bit)

0 = 0000

1 = 0001

2 = 0010

3 = 0011

4 = 0100

5 = 0101

6 = 0110

7 = 0111

-1 = 1111

-2 = 1110

-3 = 1101

-4 = 1100

-5 = 1011

-6 = 1010

-7 = 1001

-8 = 1000

Page 19: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 19/29

Nachkommastellen

Page 20: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 20/29

Binäre Nachkommastellen

● Wie kann ich Nachkommastellen darstellen?

● → 0b0,1

1/81/41/21

1,1012

1,101101/10001/1001/101

Page 21: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 21/29

Binäre Festkommazahlen

Idee: erste N Bits reserviert für Stellen vor dem Komma, restliche Bits für Stellen nach dem Komma.

Nachteil: Position des Kommas muss bei Definition des Datentyps festgelegt werden. Daher geringe Flexibilität

LSB,

101010102

,

Page 22: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 22/29

Trick: Exponentialschreibweise

● 123 * 103

● = 12,3 * 104

● = 1,23 * 105

● Generell: Normalisierung auf eine Vorkommastelle üblich

Page 23: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 23/29

entspricht der Binärzahl {Vorzeichen} 1,{Signifikand} * 2{Exponent}

Exponent: -126 bis +127

Zu gewünschten Exponent wird vor dem Speichern ein Bias (hier: 127) addiert.

z.B. Exponent 2 biased Exponent 129 (= 0b10000001)→

Sonderregeln um 0, ±×∞, NaN zu speichern

Fließkomma-Zahlen: IEEE 754

Beispiel: 32 Bit Float (Single Precision)

Vorze

ichen

(0 →

+, 1

→ -

)

Biased Exponent: 8 Bit Signifikand: 23 Bit

LSBLSB

Page 24: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 24/29

Beispiel

2.25 als Single Precision Float:

a) Umwandeln in Binärdarstellung

→ 2.25 == 0b10.01

b) Verschieben der Kommastelle hinter die erste '1'

→ 0b10.01 == 0b1.001 * 21

c) Bias zum Exponenten hinzufügen

→ 1 + 127 = 128 = 0b10000000

d) Speicherung im IEEE-754-Format

→ [0][10000000][00100000000000000000000]

Vorze

ichen

Biased Exponent: 8 Bit Signifikand: 23 Bit

LSBLSB

Page 25: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 25/29

Binärkodierung beliebiger Daten

Page 26: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 26/29

Codierung: Zuordnungen zwischen Zeichen- oder Wortvorräten

Z.B. kann jede Dezimalzahl durch eine Folge von Ziffern codiert werden

Z. B. Binärrepräsentation eines Schriftalphabets: Für jedes Zeichen (z. B. ‚A‘) definiert die Codierungsvorschrift, welches Element / Wort zuzuordnen ist (z. B. 0100 0001 als 8Bit ASCII-Binärcode für ‚A‘).

Einsatz von Codebäumen z. B. bei der Datenkompression: Ermitteln einer kompakteren / kürzeren Repräsentation für gegebenes Datenmaterial (siehe Entropie-Codierung)

Codes und Codierung

Page 27: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 27/29

Bit als kleinste Informationseinheit – binäre Codierung (i. d. Regel eines Wahrheitswertes – wahr oder falsch)

Unterste Ebene der Repräsentation von Information durch Daten

Durch Bitfolgen von n Bits lassen sich 2n verschiedene "Einzelentscheidungen" codieren• Beispiel "Woher weht der Wind?" (Gumm / Sommer 2006:6): – 8

Alternativen -> 3Bit sind erforderlich:• Süd = 000, West = 001, Nord = 010 , Ost = 011, Südost = 100,

Nordwest = 101, Nordost = 110, Südwest = 111

Binärcodierung

Page 28: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 28/29

Notwendig für die Repräsentation von Text: Kodierung des Alphabetes einer Sprache sowie weiterer Elemente (Sonderzeichen, Interpunktion etc.)

Auf der Basis eines Zeichensatzes (interne) Grundlage: Binärkodierung, z. B. 7 Bit ASCII, 8 Bit

ISO-8859, 16 Bit Unicode (= ISO 10646 Universal Character Set UCS) etc.

-> vgl. JOOP: Unicode-Zeichenverwendung in Java möglich

Textkodierung

Page 29: UR MI Informatik SS13 02a Bits Bytes Kodierung Update1

Vorlesung Einführung in die Medieninformatik · I: Bits, Bytes und Kodierung · 25.04.2013 · Raphael Wimmer · Universität Regensburg 29/29

Gumm, Heinz-Peter; Sommer, Manfred (20067). Einführung in die Informatik. München: OldenbourgHerold, Helmut; Lurz, Bruno; Wohlrab, Jürgen (2007). Grundlagen der Informatik. Praktisch- Technisch – Theoretisch. München et al: Pearson Studium.

Literatur zu dieser Einheit