2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende Codes

Größe: px
Ab Seite anzeigen:

Download "2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende Codes"

Transkript

1 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende Codes 2-1

2 2.1 Maschineninterne Darstellung von Zahlen und Zeichen Alle Daten, die ein Digitalrechner speichert und verarbeitet, werden intern in Form von Bits dargestellt. Frage: Wie werden die Datentypen aus den höheren Programmiersprachen in Bitmuster abgebildet? 2-2

3 Analoge Darstellung In der analogen Darstellung repräsentiert der technische Parameter (z. B. eine Spannung) direkt den Wert aus der Anwendung. Analoge Werte sind im Allgemeinen reelle Zahlen (Gleitkommawerte). Analoge Größen können innerhalb eines vorgegebenen Bereiches jeden beliebigen Wert annehmen α α 2-3

4 Probleme der analogen Darstellung Genauigkeit der analogen Größe Definitionsbereich der analogen Größe Arithmetische Operationen auf analogen Größen Anwendungsbeispiele Audio im traditionellen Telefonnetz und in der Unterhaltungselektronik Traditionelle Fernseh- und Videotechnik 2-4

5 Digitale Darstellung Die Darstellung von Werten erfolgt in Form von Zahlen (lateinisch: digitus : der Finger; Abzählen mit den Fingern). Beispiel: der chinesiche Abakus (Rechenrahmen) 2-5

6 Darstellung von Zahlen im Rechner Alle modernen Rechner arbeiten mit Dualzahlen (im binären Zahlensystem). Erster binärer Zustand Schalter geschlossen Transistor leitend Diode leitend Spannung hoch (Strom) Werkstoff magnetisch Zweiter binärer Zustand Schalter geöffnet Transistor gesperrt Diode gesperrt Spannung niedrig (Strom) Werkstoff nicht magnetisch Die meisten elektronischen, digitalen Systeme verwenden Spannungen: 0 Volt (Masse) +5 Volt 0 Volt +3,3 Volt -5 Volt +5 Volt 0 Volt +12 Volt 2-6

7 Logische Werte Daten vom Typ boolean (logische Daten) können nur die Werte true oder false annehmen. Daher genügt im Prinzip ein Bit. Häufig erfolgt aber eine Darstellung als ein Byte, da das Byte die kleinste adressierbare und damit direkt zugreifbare Einheit im Rechner ist. Eine weit verbreitete Konvention ist, dass ein Byte mit nur 0-Bits den Wert false darstellt, während ein Byte mit mindestens einem 1-Bit dem Wert true entspricht. Besonders häufig wird dabei das erste Bit im Byte gesetzt, da der Prozessor dieses besonders leicht auf 0 oder 1 prüfen kann. Datentyp Bitstring Manche höhere Programmiersprachen unterstützen den Datentyp Bitstring. Dieser wird direkt auf eine Folge von Bits im Speicher abgebildet. Dazu gibt es dann eine semantische Erweiterung der Operatoren der Aussagenlogik (,,,...) auf Bitmuster, die dann bitweise verknüpft werden. 2-7

8 Ganze Zahlen Positive ganze Zahlen Positive ganze Zahlen sind ein sehr häufiger Datentyp in Anwendungsprogrammen (z. B. als Feldindex, als Laufvariable in Schleifen), aber auch maschinenintern als Speicheradresse usw. Die Darstellung erfolgt als Dualzahl (Zahl zur Zahlenbasis 2). Dabei entspricht jede Ziffernposition einer Zweierpotenz (wie bei Dezimalzahlen jede Ziffernposition einer Zehnerpotenz entspricht). 2-8

9 Positive ganze Zahlen Beispiel: = Konvertierung: Dual Dezimal: Ausmultiplizieren Dezimal Dual: fortgesetzte Division durch 2 und Notieren der Reste Beispiel: als Dualzahl 30:2 = 15 Rest 0 15:2 = 7 Rest 1 7:2 = 3 Rest 1 3:2 = 1 Rest 1 1:2 = 0 Rest =

10 Rechnen mit Dualzahlen Arithmetische Operationen (Addition, Subtraktion, Multiplikation, Division) werden im Dualsystem analog zum Dezimalsystem ausgeführt. Merke: Eine Multiplikation mit 2 entspricht einem "Linksshift" der Dualzahl um 1 Bit, eine Division durch 2 einem Rechtsshift. Beispiel für ganze Zahlen im Hauptspeicher: Liste der Ganzzahlen 28, 6, 33, 14, 2, 8, dargestellt in den Speicherzellen 513 bis

11 Oktalzahlen Das Aufschreiben von langen Bitstrings braucht viel Platz und ist unübersichtlich. Deshalb wählt man häufig eine Darstellung in Form von Oktalzahlen oder Hexadezimalzahlen (Sedezimalzahlen). Dabei ergeben jeweils drei bzw. vier Bits eine Ziffer. Bitstring Oktalziffer Beispiel: = = = 2* * *

12 Hexadezimalzahlen (Sedezimalzahlen) (1) Jeweils vier Bits ergeben eine Hexadezimalziffer. Da wir aus dem Dezimalsystem nur zehn Ziffern kennen, müssen weitere sechs Ziffernbezeichner dazu genommen werden. Man wählt dazu die Großbuchstaben A bis F. Bitstring Hexadezimal- Bitstring Hexadezimalziffer ziffer A B C D E F 2-12

13 Hexadezimalzahlen (Sedezimalzahlen) (2) Beispiel: = = B 5 16 = 11* Die oktale und hexadezimale Darstellung ist nicht nur für Ganzzahlen, sondern auch für beliebige andere Bitstrings gebräuchlich, z.b. zur Definition von Bitstring-Konstanten: ALL-ONE LEFT-HALF DC X'FF' DC X'F0' 2-13

14 Negative ganze Zahlen Erste Idee Wir wählen n-1 Bits für den Betrag als ganze Zahl und ein Bit für das Vorzeichen. Nachteile: Die Null gibt es zweimal (+0, -0). Die Arithmetik wird durch Fallunterscheidungen wesentlich komplizierter. Zweite Idee: Einerkomplement Eine negative Zahl wird durch Invertieren aller Bits der positiven Zahl desselben Betrages gebildet. Nachteile: Immer noch zwei Nullen, immer noch komplizierte Arithmetik Dritte Idee: Zweierkomplement 2-14

15 Zweierkomplement (1) Berechnung: Zweierkomplement = Einerkomplement + 1 Beispiel für 3-Bit Zahlen: 2 10 = = = Vorteile: Vorzeichen immer noch am ersten Bit erkennbar Die Addition negativer Zahlen geschieht wie die Addition positiver Zahlen! Beim Überschreiten der Null geht allerdings der Übertrag verloren. Deshalb braucht man nur noch eine Hardware-Schaltung! Subtraktion i - j durch Bildung des Zweierkomplements von j und Addition! i - j = i + (-j) Sehr einfach in Hardware zu bauen! 2-15

16 Zweierkomplement (2) Die Darstellung auf dem Zahlenkreis veranschaulicht die Ähnlichkeit von Addition und Subtraktion. 2-16

17 Gleitkommazahlen Reelle Zahlen (Gleitkommazahlen, floating point numbers) kann man auf zwei Weisen darstellen: durch Festlegen einer Konvention, wo im Maschinenwort man sich die Kommastelle denkt (Festkommazahl, fixed-point number) oder durch eine Repräsentation in Form von Mantisse und Exponent. 2-17

18 Festkomma-Darstellung (fixed-point number) Darstellung reeller Zahlen ohne Exponent Festlegung einer festen Anzahl von Stellen vor und nach dem Komma durch Konvention VZ Vorkommastellen Nachkommastellen Darstellung und Addition: 19,125 = , ,625 = , ,75 = , Umrechnung Dezimal x 10 Dual x 2 für x 10 < 1: 0,375 * 2 0,750 * 2 1,500 * 2 1,000 (alle Nachkommastellen = 0 Ende) Ergebnis 0, = 0,011 2 (durch Ablesen von oben nach unten) 2-18

19 Gleitkommazahlen Repräsentation der rellen Zahl in Form von Mantisse und Exponent: z = m * g e, m Mantisse, e Exponent. m: ganze Zahl mit gedachtem Komma vor der ersten Stelle e: ganze Zahl g: Basis, gilt als implizit vereinbart und wird nicht explizit dargestellt. Gebräuchlich sind g = 2 oder g = 16 (IBM-Großrechner: g = 16) Merke m < 0: negative reelle Zahl e < 0: reelle Zahl mit Betrag zwischen 0 und

20 Beispiel für Gleitkommazahlen Eine Gleitkommazahl werde in einem 32-Bit-Wort dargestellt mit 8 Bits für e und 24 Bits für m e m Man überlege sich, wie die arithmetischen Operationen +, -, *, / in der obigen Gleitkomma- Darstellung ausgeführt werden. Anmerkung 1 Beim Rechnen mit Gleitkommazahlen ist die Genauigkeit beschränkt, da die Länge der Mantisse beschränkt ist. Es treten Rundungsfehler auf. Anmerkung 2 Sehr kleine Prozessoren unterstützen manchmal Gleitkommazahlen nicht in Hardware. Ihre Darstellung und Operationen darauf müssen dann in Software durch Unterprogramme des Laufzeitsystems realisiert werden. Üblich ist auch die Erweiterung des Rechners um einen zusätzlichen Gleitkommaprozessor, die wesentlich zur Beschleunigung der Ausführung numerischer Anwendungsprogramme beitragen kann. 2-20

21 Darstellung der Mantisse Problem: 0,5 10 lässt sich darstellen als 0,1 2 * 2 0 oder als 0,01 2 * 2 1 etc. Lösung: Eindeutigkeit der Darstellung durch normalisierte Mantisse (Basis g = 2), z.b.: ½ m < 1, d.h. 0,5 10 = 0,1 2 * m < 2, d.h. 0,5 10 = 1,0 2 * 2-1 Werden normalisierte Mantissen vorausgesetzt, ist das erste Bit immer gleich 0 bzw. 1 und braucht nicht abgespeichert zu werden (sogenanntes hidden bit ). Beispiel: Basis g = 2, Exponent e mit 6 Bits, normalisierte Mantisse m (1 m < 2) mit 6 Bits, hidden bit. 7,75 10 = 111,110 2 = (-1) 0 *1, * VZ Exponent Mantisse 2-21

22 Versetzte Darstellung des Exponenten Diese Darstellung wird auch als Biased- oder Excess-Darstellung bezeichnet Zum tatsächlichen Exponenten wird ein bestimmter Wert (Bias) hinzuaddiert. Hat der Exponent n Bits, so beträgt dieser Wert 2 n-1. Beispiel: Basis g = 2, Exponent e mit 6 Bits in Excess-Darstellung, normalisierte Mantisse m (1 m < 2) mit 6 Bits,hidden bit. 7,75 10 = 111,110 2 = (-1) 0 *1, * 2 2 Zu speichernder Exponent e = = Vorteil dieser Darstellung: Falls für zwei Gleitkommazahlen a b gilt, so gilt das Gleiche für die (gewöhnliche) Dualdarstellung von a und b. Beispiel: a = 0,5 10 = 1,0 2 * 2-1 = b = 4 10 = 1,0 2 * 2 2 = Ohne Excess-Darstellung wäre der Exponent von a und von b (Zweierkomplement). 2-22

23 Das IEEE-Gleitkommaformat (IEEE 754) Genauigkeit Vorzeichen (bits) Exponent (bits) Fraction (= Mantisse ohne hidden bit) single precision double precision 1 (0 = positiv, 1 = negativ) (hidden bit) 52 (hidden bit) Gesamtbreite (bits) Excess Exponent

24 Zeichen (characters) Darstellung in fester Länge Die Zuordnung von Bitmustern zu den darzustellenden Zeichen nennt man einen Zeichencode. Zur Darstellung von Zeichen des Alphabets (Textzeichen, Sonderzeichen) gibt es internationale Standards. Diese verwenden eine feste Anzahl von Bits für jedes Zeichen. ASCII American Standard Code for Information Interchange. Ursprünglich ein 7- Bit-Code, inzwischen als 8-Bit-Code gebräuchlich, damit auch internationale Zeichen (z. B. deutsche Umlaute) aufgenommen werden können (IA5 = International Alphabet Number 5). EBCDIC Extended Binary Coded Decimal Interchange Code. Ein 8-Bit-Code, der auf Großrechnern weit verbreitet ist, vor allem bei IBM. 2-24

25 Darstellung von Zeichen ASCII und EBCDIC Codes enthalten: druckbare Zeichen Ziffern Kleinbuchstaben Großbuchstaben Sonderzeichen (!,?, $,...) nicht druckbare Zeichen (Steuerzeichen) Wagenrücklauf Zeilenvorschub Tabulator Klingeln Gerätesteuerzeichen Übertragungssteuerzeichen. 2-25

26 ASCII-Codetabelle (7-Bit-Code) Erste 3 Bits x y 0 nul dle P ` p 1 soh dc1! 1 A Q ` q 2 sfx dc2 " 2 B R b r 3 etx dc3 # 3 C S c s 4 eot dc4 $ 4 D T d t 5 enq nak % 5 E U e u 6 ack syn & 6 F V f v 7 bel etb ' 7 G W g w 8 bs can ( 8 H X h x 9 ht em ) 9 I Y i y A lf sub * : J Z j z B vt esc + ; K [ k { C ff fs, < L \ l D cr qs - = M ] m } E so rs. > N ^ n F si us /? O _ o del 2-26

27 ASCII: Bedeutung der Steuerzeichen Abk. Funktion Funktion (Bedeutung des Zeichens) NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1-3 DC4 NAK SYN ETB CAN EM SS ESC FS GS RS US SP DEL Null Start of heading Start of text End of text End of transmission Enquiry Acknowledgement Audible signal Backspace Horizontal tabulation Line feed Vertical tabulation Form feed Carrier return Shift out Shift in Data link escape Device control Device stop Negative acknowledgement Synchronous idle End of transmission block Cancel End of medium Start of special sequence Escape File separator Group separator Record separator Unit separator Space Delete/Idle Nichtiges (ungültiges) Zeichen Beginn des Kopfes (Titels) Textanfang Textende Ende der Übertragung Anfrage Empfangsbestätigung Akustisches Signal Rücksetzen Horizontale Einstellung (Tabulator) Zeilenvorschub Vertikale Einstellung (Tabulator) Formularvorschub Schreibkopfrücklauf Umschaltung aus (Kleinschreibung) Umschaltung ein (Großschreibung) Umschaltung von Text auf Steuerzeichen Einheitensteuerung Einheitenhalt Negative Empfangsbestätigung Synchronisierzeichen (Leerlauf) Ende eines Übertragungsblockes Aufhebung Ende für ein Medium (Gerät) Beginn einer speziellen Folge Auswahl, Trennung, Umschaltung Dateitrennzeichen Gruppentrennzeichen Satztrennzeichen Trennzeichen für eine Informationseinheit Zwischenraum Löschen/ Leerlauf 2-27

28 EBCDIC-Codetabelle 2-28

29 Zeichencodes mit variabler Bitlänge Zeichencodes mit einer festen Anzahl von Bits haben den gravierenden Nachteil, dass sie nicht optimal sind, wenn die Häufigkeit der Zeichen in einem Text nicht gleich verteilt ist. Man kann sich dann Codes überlegen, bei denen Zeichen je nach ihrer Häufigkeit mit einer unterschiedlichen Anzahl von Bits dargestellt werden. Die Codetabelle wird gemäß den Zeichenhäufigkeiten anwendungsabhängig gewählt. Vorteil Im Mittel weniger Bits zur Darstellung der Anwendungsdaten. Verringert den Speicherbedarf und beschleunigt den Datentransfer. Nachteil Zusatzaufwand zum Kodieren/Dekodieren zwischen gebräuchlichen Darstellungen und dem Code mit variabler Bitlänge. Parsing (Zerlegung der Zeichenkette in die einzelnen Zeichen) wird komplizierter. 2-29

30 Beispiel für einen Code mit variabler Bitlänge (1) Zeichen Häufigkeit (%) Code Anzahl der Bits A F B [leer] D E Z P N u C H R M L S I

31 Beispiel für einen Code mit variabler Bitlänge (2) Zeichen Häufigkeit (%) Code Anzahl der Bits T K Y X G J O Q V W ? & / < unter ) ( %

32 Beispiel für einen Code mit variabler Bitlänge (3) Zeichen Häufigkeit (%) Code Anzahl der Bits = # ? , Mittlere Zeichenlänge im Code * * * * * * * * * * x 16 = 2.91 Bit pro Zeichen Wesentlich weniger als die üblichen 8 Bit pro Zeichen! 2-32

33 Der Huffman-Code David Huffman hat einen Algorithmus zur Konstruktion von optimalen Codes mit variabler Bitlänge angegeben. Mit diesem Algorithmus konstruierte Codes bezeichnet man als Huffman-Codes. Algorithmus: ErzeugeHuffmanCode 1. Bestimme die Auftrittshäufigkeiten der Zeichen und schreibe sie an die Blattknoten eines aufzubauenden Binärbaums an. 2. Nimm die bisher unerledigten zwei Knoten mit den geringsten Häufigkeiten und berechne deren Summe. 3. Erzeuge einen Elternknoten für diese beiden und beschrifte ihn mit der Summe. Markiere die Verzweigung zum linken Sohn mit 0, die zum rechten Sohn mit Markiere die beiden bearbeiteten Knoten als erledigt. Wenn es nur noch einen nicht erledigten Knoten gibt, sind wir fertig. Sonst weiter mit Schritt

34 Huffman-Code, Beispiel Wahrscheinlichkeiten der Zeichen: p(a) = 0.3; p(b) = 0.3; p(c) = 0.1; p(d) = 0.15; p(e) = 0.15 Kodierbaum Wahrschein- Zeichen Code lichkeit % 0 30% 30% A B % % % 0 10% 15% 15% C D E

35 Huffman-Code: Optimalität Die Zeichen mit großen Häufigkeiten sind näher an der Wurzel des Baumes und haben somit eine kürzere Codewortlänge; deshalb ist es ein guter Code. Es ist sogar der bestmögliche Code! Begründung: Die Länge einer kodierten Zeichenfolge ist gleich der gewichteten äußeren Pfadlänge des Huffman-Baumes. Die gewichtete äußere Pfadlänge eines Baumes ist gleich der über alle äußeren Knoten gebildeten Summe der Produkte des Gewichts (zugehöriger Häufigkeits-zähler) mit der Entfernung von der Wurzel. Dies ist offensichtlich eine Möglichkeit, die Länge der kodierten Zeichenfolge zu berechnen; sie ist äquivalent zu der über alle Buchstaben gebildeten Summe der Produkte der Häufigkeit des Auftretens eines Buchstaben mit der Anzahl der Bits bei jedem Auftreten. Kein Baum mit den gleichen Häufigkeiten bei den äußeren Knoten hat eine kleinere gewichtete äußere Pfadlänge als der Huffman-Baum. 2-35

36 Beweisidee Mit Hilfe des gleichen Prozesses kann ein beliebiger anderer Binärbaum konstruiert werden, doch ohne bei jedem Schritt unbedingt die zwei Knoten mit dem kleinsten Gewicht auszuwählen. Mittels Induktion lässt sich beweisen, dass keine Strategie zu einem besseren Ergebnis führen kann als die, bei der jeweils zuerst die beiden kleinsten Gewichte ausgewählt werden. 2-36

37 Dekodieren von Huffman-Codes (1) Nahe liegend ist eine Dekodierung unter Verwendung des Tries (eines speziellen Binärbaumes): 1. Lies den Eingabestrom sequenziell und traversiere den Trie, bis ein Blattknoten erreicht ist. 2. Gib bei Erreichen des Blattknotens das erkannte Zeichen aus. Beobachtung Die Eingabe-Bitrate ist konstant, aber die Ausgabe-Zeichenrate ist variabel. 2-37

38 Decodieren von Huffman-Codes (2) Als Alternative bietet sich die Verwendung einer Dekodiertabelle an. Erzeugung der Tabelle: Hat das längste Codewort L Bits, so hat die Tabelle 2 L Einträge. Sei c i das Codewort für Zeichen s i. c i habe l i Bits. Wir erzeugen 2 L-li Einträge in der Tabelle, bei denen jeweils die ersten l i Bits = c i sind und die verbleibenden L-l i Bits alle möglichen Kombinationen annehmen. An all diesen Adressen wird s i als erkanntes Zeichen eingetragen, zugleich wird l i als Codewortlänge vermerkt. 2-38

39 Decodieren von Huffman-Codes (3) Einsatz der Tabelle zur Dekodierung: 1. Lies L Bits aus dem Eingabestrom in einen Puffer. 2. Benutze den Puffer als Adresse in der Tabelle und gib das erkannte Zeichen s i aus. 3. Entferne die ersten l i Bits aus dem Puffer und ziehe weitere l i Bits aus dem Eingabestrom nach. 4.Weiter mit Schritt 2. Beobachtung Das Tabellenverfahren ist schnell. Die Ausgabe-Zeichenrate ist konstant, aber die Eingabe-Bitrate ist variabel. 2-39

40 Huffman-Code: Kommentare Ein sehr guter Code für viele praktische Zwecke. Allerdings nur geeignet, wenn die Häufigkeiten der Zeichen a priori bekannt und immer gleich (oder ähnlich) sind. Variante: Ermittle die Häufigkeiten für jeden gegebenen Text neu und speichere/übertrage den Code mit den Daten. Ein (durchaus berechenbarer) Verlust entsteht dadurch, dass jedes Zeichen mit einer ganzen Zahl von Bits kodiert werden muss und somit die Codelänge den Häufigkeiten nicht ganz (theoretisch optimal) angepasst werden kann. Verbesserung: arithmetische Kodierung (auf die wir hier nicht näher eingehen). 2-40

41 2.2 Fehlererkennende Codes Definition Fehler : Die empfangene Information entspricht nicht der gesendeten. Ein fehlererkennender Code ermöglicht dem Empfänger einer Nachricht festzustellen, dass es einen Über-tragungsfehler gegeben hat. Ein fehlererkorrigierender Code ermöglicht dem Empfänger einer Nachricht festzustellen, wo in der Nachricht es einen Übertragungsfehler gegeben hat; der Empfänger kann den Fehler ohne erneute Über-tragung reparieren. Fehlererkennung und Fehlerkorrektur erfordern Redundanz. Wieviel Redundanz man braucht und wie man die redundanten Bits am besten generiert, ist Gegenstand der Codierungstheorie. Man vermutet schon: Fehlerkorrektur benötigt mehr Redundanz als Fehlererkennung. 2-41

42 Fehlererkennung (1) Beispiel für Fehlererkennung: das Paritätsbit. Zu vier Datenbits wird ein Paritätsbit hinzu gefügt.. Bei gerader Parität ist die Gesamtzahl der 1-Bits gerade, bei ungerader Parität ungerade Beispiel: Gerade Parität 2-42

43 Fehlererkennung (2) Der Sender berechnet das Paritätsbit und fügt es an die Nachricht an. Der Empfänger berechnet das Paritätsbit neu und vergleicht es mit dem übertragenen Paritätsbit. Bei Abweichung erkennt er einen Fehler. Beispiel E Übertragung der Zahl 7: Kanal: FEHLER! Empfang: Test bei Empfänger: #1 gerade E=0 FEHLER-ERKENNUNG Es muß einen Fehler geben! E = Parity-Bit oder Prüfbit! Frage: Welche Arten von Übertragungsfehlern kann man mit einem Paritätsbit erkennen? Wie mächtig ist der Code? 2-43

44 Fehlererkennung: Code-Beispiel Wir betrachten einen Code, der oft in der Telekommunikation zur Übertragung von BCD- Zahlen (binary coded decimals) verwendet wird: den 2-aus-5-Code (auch Code genannt). 2 aus 5 nur zwei Einsen in 5 Bits Die Fehlererkennung erfolgt durch Geradzahligkeitsprüfung. 2-44

45 2.3 Fehlerkorrigierende Codes Eine automatische Korrektur ist nur möglich, wenn man genau weiß, wo der Fehler liegt. Das erfordert mehr Redundanz, also mehr Bits pro Zeichen als die reine Fehlererkennung. Ein fehlerkorrigierender Code ist stets auch ein fehlererkennender Code. 2-45

46 Prinzip eines fehlerkorrigierenden Codes 1. Pos: a + c a + b a - c + a - b - 2a 2a OK 2. Pos: a Korrektur: a,..., a+b, a-b FEHLER! 2-46

47 Hamming-Abstand (1) Hamming-Abstand d Der Hamming-Abstand d zwischen zwei Codewörtern c 1, c 2 ist die Anzahl der Bitpositionen, in denen sich die beiden Codewörter unterscheiden. Beispiel d( , ) = 3 (Anzahl der Bits von c 1 XOR c 2 ) Hamming-Abstand D eines vollständigen Codes C: D ( C) : = min{ d( c, c ), c, c C c c } ,

48 Hamming-Abstand (2) Satz Die Fähigkeit eines Codes, Fehler zu erkennen und Fehler zu beheben, hängt von seinem Hamming-Abstand ab (hier ohne Beweis). Erkenne e-bit Fehler: Ein Abstand von e + 1 wird benötigt. Behebe e-bit Fehler: Ein Abstand von 2e + 1 wird benötigt. 2-48

49 Wieviel Redundanz braucht man? Das Codewort bestehe aus m Zeichen-Bits. Frage: Wieviele Prüfbits werden benötigt, um jeden 1-Bit-Fehler beheben zu können? n = m + r, m Datenbits, r Redundanzbits Es gibt 2 m legale Zeichencodes. Pro Codewort muss es n illegale Codewörter im Abstand von einem Bit geben. 2 n ist die Gesamtzahl der darstellbaren Codewörter. (n+1)2m 2n = 2m+r (n+1) 2r (m + r + 1) 2r Dies ergibt die untere Grenze für r Beispiel: m = 7 (8 + r) 2 r => r

50 Code-Beispiele Fehlererkennender Code: Code mit einem einzigen Paritätsbit (gerade oder ungerade) => Hamming-Abstand = 2 => Erkennung eines 1-Bit-Fehlers ist möglich (oder Erkennung aller Fehler mit einer unge-raden Anzahl Bits) Fehlerbehebender Code: Ein Code bestehe aus vier Codewörtern: , , , => Hamming-Abstand = 5 => Korrektur von 2-Bit-Fehlern ist möglich. Beispiel: => bit-Fehler nächstes Codewort 2-50

51 Hamming-Code (1) Der Hamming-Code ersetzt jedes Datenwort von 4 Bits durch ein Codewort mit 7 Bits. Für ein gegebenes Datenwort m 1 m 2 m 3 m 4 bilden wir das Codewort c 1 c 2 c 3 c 4 c 5 c 6 c 7. Die ersten vier Bits c 1 c 2 c 3 c 4 sind dieselben wie im Datenwort. Die weiteren Bits werden wie Paritätsbits berechnet: c 5 = Parität von c 1 c 2 c 3 (c 1 c 2 c 3 ) c 6 = Parität von c 1 c 3 c 4 (c 1 c 3 c 4 ) c 7 = Parität von c 2 c 3 c 4 (c 2 c 3 c 4 ). 2-51

52 Hamming-Code (2) Insgesamt gibt es 16 Codewörter:

53 Hamming-Code (3) Decodierung Ist das empfangene Wort ein gültiges Codewort, wird es akzeptiert. Ist es ungültig, so wird es zum nächsten Nachbarn hin korrigiert. Alle 1-Bit-Fehler können eindeutig korrigiert werden. Beispiel wird zu korrigiert (Abstand 1). 2-53

54 Hamming-Code (4) Veranschaulichung: Codewort: Fülle die Bit-Positionen c 5, c 6, c 7 so aus, dass jeder Kreis eine gerade Anzahl Einsen hat. Das Codewort für m 1 m 2 m 3 m 4 = wird dann : c 1 c 2 c 3 c 4 c 5 c 6 c 7 =

55 Nachteil von fehlerkorrigierenden Codes Großer Overhead (viel Redundanz), der auch im Falle einer fehlerfreien Speicherung/Übertragung anfällt. 2-55

2. Zahlendarstellung und Codierungstechniken

2. Zahlendarstellung und Codierungstechniken 2. Zahlendarstellung und Codierungstechniken 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende Codes 2. Zahlendarstellung und Codierung 2-1 2.1

Mehr

2. Zahlendarstellung und Codierungstechniken. 2.1 Maschineninterne Darstellung von Zahlen und Zeichen

2. Zahlendarstellung und Codierungstechniken. 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2. Zahlendarstellung und Codierungstechniken 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende

Mehr

2. Zahlendarstellung und Codierungstechniken. 2.1 Maschineninterne Darstellung von Zahlen und Zeichen

2. Zahlendarstellung und Codierungstechniken. 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2. Zahlendarstellung und Codierungstechniken 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.1 Maschineninterne Darstellung von Zahlen und Zeichen 2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB

Mehr

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 1 2 Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 3 Die Zuordnung der Himmelsrichtungen zu den dreistelligen Binärzahlen, also Norden 000 Süden 001

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik Sommer 2014 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 10. April 2014 1/37 1 Repräsentation

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char

Mehr

Escape-Sequenzen. Dr. Norbert Spangler

Escape-Sequenzen. Dr. Norbert Spangler Escape-Sequenzen Einzelzeichen Bedeutung ASCII- ASCII-Code \a alert BEL 07 \b backspace BS 08 \t horizontal tab HT 09 \n line feed LF 0A \v vertical tab VT 0B \f form feed FF 0C \r carriage return CR 0D

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Bits, Byte, Datenworte und Logikpegel 89 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f (X ).

Mehr

Protokollgrundlagen (Schicht 2)

Protokollgrundlagen (Schicht 2) Protokollgrundlagen (Schicht ) Einfaches Kommunikationsprotokoll für eine Punkt-zu-Punkt- Verbindung: Phase Station Station Eröffnung ENQ Fehlerroutine Invalid or no NAK ACK reply Nachrichtenübermittlung

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 06.03.09 2-1 Heutige große Übung Allgemeines

Mehr

Informatikgrundlagen I Grundlagen der Informatik I

Informatikgrundlagen I Grundlagen der Informatik I Informatikgrundlagen I Grundlagen der Informatik I Dipl.-Inf. Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 Fachbereich Automatisierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben Zwischenklausur Informatik, WS 206/7 4.2.206 Lösungen zu den Aufgaben. Gegeben sind folgende Dualzahlen in Zweierkomplementdarstellung. Geben Sie den jeweils zugehörigen Dezimalwert an! a) entspricht der

Mehr

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit Informationsmenge Maßeinheit: 1 Bit Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit 1 Byte Zusammenfassung von 8 Bit, kleinste Speichereinheit im Computer, liefert

Mehr

1. Grundlegende Konzepte der Informatik

1. Grundlegende Konzepte der Informatik 1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Zahlensysteme

Mehr

Kapitel 5: Darstellung von Daten im Rechner

Kapitel 5: Darstellung von Daten im Rechner Kapitel 5: Darstellung von Daten im Rechner Kapitel 5 Darstellung von Daten im Rechner und Rechnerarithmetik Literatur: Oberschelp/Vossen, Kapitel 5 Kapitel 5: Darstellung von Daten im Rechner Seite Kapitel

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung 1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Zahlensysteme und

Mehr

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen 3 Zahlendarstellung - Zahlensysteme - b-adische Darstellung natürlicher Zahlen - Komplementbildung - Darstellung ganzer und reeller Zahlen Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen......

Mehr

(Prüfungs-)Aufgaben zur Codierungstheorie

(Prüfungs-)Aufgaben zur Codierungstheorie (Prüfungs-)Aufgaben zur Codierungstheorie 1) Gegeben sei die folgende CCITT2-Codierung der Dezimalziffern: Dezimal CCITT2 0 0 1 1 0 1 1 1 1 1 0 1 2 1 1 0 0 1 3 1 0 0 0 0 4 0 1 0 1 0 5 0 0 0 0 1 6 1 0 1

Mehr

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung Thema 1 -- Fortsetzung Computersystem, Informationsdarstellung Codierung! Bei der Codierung erfolgt eine eindeutige Zuordnung der Zeichen eines Zeichenvorrates (Urmenge, Quellalphabet) zu denjenigen eines

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Bits, Byte, Datenworte und Logikpegel 89 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f (X ).

Mehr

Übungsblatt 5 - Musterlösung

Übungsblatt 5 - Musterlösung Universität Mannheim Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Christoph Kuhmünch, Gerald Kühne Praktische Informatik II SS 2000 Übungsblatt 5 - Musterlösung Aufgabe 1: Huffman-Codierung

Mehr

2 Repräsentation von elementaren Daten

2 Repräsentation von elementaren Daten 2 Repräsentation von elementaren Daten Alle (elemtaren) Daten wie Zeichen und Zahlen werden im Dualsystem repräsentiert. Das Dualsystem ist ein spezielles B-adisches Zahlensystem, nämlich mit der Basis

Mehr

Rechnerstrukturen WS 2012/13

Rechnerstrukturen WS 2012/13 Rechnerstrukturen WS 2012/13 Repräsentation von Daten Repräsentation natürlicher Zahlen (Wiederholung) Repräsentation von Texten Repräsentation ganzer Zahlen Repräsentation rationaler Zahlen Repräsentation

Mehr

Zahlensysteme und Kodes. Prof. Metzler

Zahlensysteme und Kodes. Prof. Metzler Zahlensysteme und Kodes 1 Zahlensysteme und Kodes Alle üblichen Zahlensysteme sind sogenannte Stellenwert-Systeme, bei denen jede Stelle innerhalb einer Zahl ein besonderer Vervielfachungsfaktor in Form

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

7. Übung zur Vorlesung Grundlagen der Informatik

7. Übung zur Vorlesung Grundlagen der Informatik 7. Übung zur Vorlesung Grundlagen der Informatik 13.Interne Darstellung von Daten In der Vorlesung wurde bereits darauf hingewiesen, dass ein Rechner intern lediglich die Zustände 0 (kein Signal liegt

Mehr

Wie rechnet ein Rechner?

Wie rechnet ein Rechner? 0 Motivation Jörg Roth 2 Wir gehen in dieser Vorlesung der Frage nach Wie rechnet ein Rechner? Als Softwareentwickler könnten wir in einem Programm z.b. folgende Anweisung schreiben: a = a+2*b; Wie wird

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

Mehr

Kapitel 2: Darstellung von Information. Inhalt. Einfache Datentypen (Fortsetzung) Erste Programme (mit Ausgabe) Exkurs: Grammatiken

Kapitel 2: Darstellung von Information. Inhalt. Einfache Datentypen (Fortsetzung) Erste Programme (mit Ausgabe) Exkurs: Grammatiken Kapitel 2: Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Einfache Datentypen (Fortsetzung) Erste

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 4. Daten K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 19. Okt. 2015 Was ist Informatik? Begriffsbestimmung (Gegenstand): "Informatik ist die Wissenschaft... der maschinellen Verarbeitung,

Mehr

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung WS 06/07 Thema 4: Zahlensysteme / Codierung 1 Übung zur Winfo I - Themenplan - Informationsverarbeitung in Unternehmen Tabellenkalkulation Anwendungen PC-Komponenten Zahlensysteme / Codierung Boole sche

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 21 Bits Byte Datenworte und Logikpegel 89 2 Darstellung von Zahlen und Zeichen Computer bzw Prozessorsysteme führen Transformationen durch die Eingaben X auf Ausgaben Y abbilden dh Y = f (X ) Eingabe X

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 3 AM 13./14.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Darstellung von Zeichen und Zahlen

Darstellung von Zeichen und Zahlen und Zahlen [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg 1. November 2005 1

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 5. Vorlesung 06.11.2018 1 Zahlendarstellungen 2 Speicherinhalte: Bits Hardware Spannung Ladung Magnetisierung Codierung 0V ungeladen unmagnetisiert 0 5V geladen magnetisiert

Mehr

1. Tutorium Digitaltechnik und Entwurfsverfahren

1. Tutorium Digitaltechnik und Entwurfsverfahren 1. Tutorium Digitaltechnik und Entwurfsverfahren Tutorium Nr. 25 Alexis Tobias Bernhard Fakultät für Informatik, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Darstellung von Informationen

Darstellung von Informationen Darstellung von Informationen Bit, Byte, Speicherzelle und rbeitsspeicher Boolesche Operationen, Gatter, Schaltkreis Bit Speicher (Flipflop) Binär- Hexadezimal und Dezimalzahlensystem, Umrechnungen Zweierkomplement

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches Tutorfragestunden (Start: Heute)

Mehr

Skript. EDV Grundlagen

Skript. EDV Grundlagen PAUL-EHRLICH-SCHULE Frankfurt-Höchst Berufs-, Fach-, Fachoberschule Informatik FOS FS Skript EDV Grundlagen Datum: Name: Klasse: 1. Daten die Welt der Bits und Bytes Daten begegnen uns im Alltag in vielfältiger

Mehr

Zahlen und Zeichen (1)

Zahlen und Zeichen (1) Zahlen und Zeichen () Fragen: Wie werden Zahlen repräsentiert und konvertiert? Wie werden negative Zahlen und Brüche repräsentiert? Wie werden die Grundrechenarten ausgeführt? Was ist, wenn das Ergebnis

Mehr

II. Grundlagen der Programmierung

II. Grundlagen der Programmierung II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123

Mehr

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Was sind primitive Datentypen? Primitive Datentypen

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Was sind primitive Datentypen? Primitive Datentypen Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Tutorfragestunden (Start: Heute)

Mehr

Kapitel 6 Darstellung von Daten im Rechner. Kapitel 6: Darstellung von Daten im Rechner Seite 1 / 63

Kapitel 6 Darstellung von Daten im Rechner. Kapitel 6: Darstellung von Daten im Rechner Seite 1 / 63 Kapitel 6 Darstellung von Daten im Rechner Kapitel 6: Darstellung von Daten im Rechner Seite / 63 Darstellung von Daten im Rechner Inhaltsverzeichnis 6. Darstellung ganzer Zahlen 6.2 Darstellung reeller

Mehr

DuE-Tutorien 16 und 17

DuE-Tutorien 16 und 17 Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Tutorienwoche 2 am 12.11.2010 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der

Mehr

Informationsdarstellung 2.2

Informationsdarstellung 2.2 Beispiele für die Gleitkommadarstellung (mit Basis b = 2): 0,5 = 0,5 2 0-17,0 = - 0,53125 2 5 1,024 = 0,512 2 1-0,001 = - 0,512 2-9 3,141592... = 0,785398... 2 2 n = +/- m 2 e Codierung in m Codierung

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Die Bildauswahl erfolgte in Anlehnung an das Alter der Kinder Prof. J. Walter Bitte römische Zahlen im Geschichtsunterricht! Messsystem mit Mikrocontroller

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik (Wintersemester 2008/2009) Jörg Roth Jörg Roth 2 0 Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf

Mehr

Informationsdarstellung. 2 Informationsdarstellung. Ziele. 2 Informationsdarstellung Texte. Texte WS 2017/2018

Informationsdarstellung. 2 Informationsdarstellung. Ziele. 2 Informationsdarstellung Texte. Texte WS 2017/2018 Fakultät Informatik Institut Systemarchitektur Professur Datenschutz und Datensicherheit WS 2017/2018 2. Informationsdarstellung Dr.-Ing. Elke Franz Elke.Franz@tu-dresden.de 2 Informationsdarstellung Ziele

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16 Rechnerstrukturen, Teil 1 Vorlesung 4 SWS WS 15/16 Prof. Dr Jian-Jia Chen Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-.de http://ls1-www.cs.tu-.de Übersicht

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches Tutorfragestunden (Start: Heute)

Mehr

Zahlen in Binärdarstellung

Zahlen in Binärdarstellung Zahlen in Binärdarstellung 1 Zahlensysteme Das Dezimalsystem Das Dezimalsystem ist ein Stellenwertsystem (Posititionssystem) zur Basis 10. Das bedeutet, dass eine Ziffer neben ihrem eigenen Wert noch einen

Mehr

N Bit Darstellung von Gleitkommazahlen

N Bit Darstellung von Gleitkommazahlen N Bit Darstellung von Gleitkommazahlen Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel: Allgemein: Sign and Magnitude Darstellung für beispielsweise 32 Bits: (s=0 für + und s=1 für )

Mehr

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise der Computernetze zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich um

Mehr

, 2014W Übungstermin: Fr.,

, 2014W Übungstermin: Fr., VU Technische Grundlagen der Informatik Übung 1: Zahlendarstellungen, Numerik 183.579, 2014W Übungstermin: Fr., 17.10.2014 Allgemeine Hinweise: Versuchen Sie beim Lösen der Beispiele keine elektronischen

Mehr

Technische Informatik (RO)

Technische Informatik (RO) Technische Informatik (RO) Zahlensysteme, Digitale Systeme (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten, Sequentielle Schaltungen (6) Informationskodierung (7,8) Fortsetzung

Mehr

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure Kapitel : Wintersemester 6/7 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Einfache Datentypen Zahldarstellungen im Rechner

Mehr

Wertebereiche, Overflow und Underflow

Wertebereiche, Overflow und Underflow Wertebereiche, Overflow und Underflow s exponent fraction 1 Bit 8 Bits 23 Bits Kleinste darstellbare nicht negative Zahl annähernd 2,0 * 10 38 Größte darstellbare Zahl annähernd 2,0 * 10 38 Was, wenn die

Mehr

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen Übungen zur Vorlesung Grundlagen der Rechnernetze Zusätzliche Übungen Hamming-Abstand d Der Hamming-Abstand d zwischen zwei Codewörtern c1 und c2 ist die Anzahl der Bits, in denen sich die beiden Codewörter

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 11 Kapitel 11 Zeichenverarbeitung Seite 1 von 11 Zeichenverarbeitung - Jedem Zeichen ist ein Zahlencode zugeordnet. - Dadurch wird ermöglicht, zwischen verschiedenen Systemen Texte auszutauschen. - Es werden

Mehr

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise der Computernetze zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich um

Mehr

Grundlagen der Informatik II Übungsblatt: 5, WS 17/18 mit Lösungen

Grundlagen der Informatik II Übungsblatt: 5, WS 17/18 mit Lösungen PD. Dr. Pradyumn Shukla Marlon Braun Micaela Wünsche Dr. Friederike Pfeiffer-Bohnen Dr. Lukas König Institut für Angewandte Informatik und Formale Beschreibungsverfahren Grundlagen der Informatik II Übungsblatt:

Mehr

Rechnerorganisation. IHS 2018/2019 H.-D. Wuttke, K. Henke

Rechnerorganisation. IHS 2018/2019 H.-D. Wuttke, K. Henke Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Darstellung von Zeichen und

Mehr

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir? Rechnernetze Übung 5 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2012 Wo sind wir? Quelle Nachricht Senke Sender Signal Übertragungsmedium Empfänger Quelle Nachricht Senke Primäres

Mehr

2.1 Fundamentale Typen

2.1 Fundamentale Typen 2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische

Mehr

Das Verfahren in Hardware

Das Verfahren in Hardware Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt

Mehr

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation nach der Schulmethode Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel: Multiplikand A: 1 1 0 1 0 Multiplikator

Mehr

mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung der Länge n 1 zur Basis b. Damit ist

mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung der Länge n 1 zur Basis b. Damit ist mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung ẑ = ẑ n 2 b n 2 + + ẑ 1 b 1 + ẑ 0 b 0 der Länge n 1 zur Basis b. Damit ist z = (ẑ n 2 b n 2 + + ẑ 1 b 1 + ẑ 0 b 0 ) b +

Mehr

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Zahlensysteme und Datendarstellung Zahlensysteme Problem: Wie stellt man (große) Zahlen einfach, platzsparend und rechnergeeignet

Mehr

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1 Polyadisches Zahlensystem B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Ganze Zahlen: n-1 Z= a i B i i=0 Z = a 0 B 0 + a 1 B 1 + a 2 B 2 +... + a n-1 B n-1 Rationale Zahlen: n-1 Z= a i B i

Mehr

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen Mathematische Werkzeuge für Computergrafik 2016/17 Gleitkommzahlen 1 Grundlagen 1 Da im Computer nur endliche Ressourcen zur Verfügung stehen, können reelle Zahlen in vielen Fällen nicht exakt dargestellt

Mehr

Informatik I Modul 2: Rechnerarithmetik (1)

Informatik I Modul 2: Rechnerarithmetik (1) Fall Term 2010, Department of Informatics, IFI, UZH, Switzerland Informatik I Modul 2: Rechnerarithmetik (1) 2010 Burkhard Stiller M2 1 Modul 2: Rechnerarithmetik (1) Zahlensysteme Zahlendarstellung 2010

Mehr

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2) Fall Term 1, Department of Informatics, IFI, UZH, Switzerland Modul : Rechnerarithmetik (1) Informatik I Modul : Rechnerarithmetik (1) Zahlensysteme Zahlendarstellung 1 Burkhard Stiller M 1 1 Burkhard

Mehr

, 2017S Übungstermin: Di.,

, 2017S Übungstermin: Di., VU Technische Grundlagen der Informatik Übung 1: Zahlendarstellungen, Numerik 183.579, 2017S Übungstermin: Di., 14.03.2017 Allgemeine Hinweise: Versuchen Sie beim Lösen der Beispiele keine elektronischen

Mehr

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise von Betriebssystemen zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich

Mehr

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion 6.2 Non-Restoring Division Restoring Division Divisor wird subtrahiert falls Unterlauf (Ergebnis negativ) Divisor wird wieder addiert im nächsten Durchlauf wird die Hälfte des Divisor subtrahiert (Linksshift

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 4 Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr