Ingenieurinformatik Zahlensysteme Definition: Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. In der Informatik spricht man auch von Stellenwertsystem, d.h. einem System zur Darstellung von Zahlen durch Ziffern, bei denen der Wert einer Ziffer von der Stelle abhängt, an welcher sie innerhalb der Zahl geschrieben ist. Beispiel: Dezimalsystem (mit der Basis 10) 1 3 1000 100 103 102 Zerlegung nach Potenzen der Basis 10: 1 3 10 101 3 1 100 Wertigkeit der Stellen 1*1000+ 3*100 + 3*10 +3*1 =1333 Dualsystem Das Dualsystem (auch Binärsystem genannt) ist die Basis der heutigen Computer, da die elementaren Schalt- und Speicherelemente nur über zwei mögliche Zustände verfügen, im Allgemeinen EIN/AUS. Das Dualsystem ist ein polyadisches Zahlensystem zur Basis 2. Es verfügt über einen Vorrat von zwei Ziffern, 0 und 1. (Das uns vertraute Dezimalsystem verfügt über die zehn Ziffern, 0 1 2 3 4 5 6 .9.) Beim Dualsystem steigt der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links in Potenzen zur Basis 2 (beim Dezimalsystem in Potenzen zur Basis 10, siehe Beispiel oben). Zahlenbereich: In jedem polyadischen Zahlensystem hängt der darstellbare Zahlenbereich von der Anzahl der Stellen ab. Dies bedeutet allgemein: Dr.-Ing. K. Jäger-Hezel, 26.03.2007 1 Ingenieurinformatik Mit N Binärstellen bzw. einer Bitfolge der Länge N können dargestellt werden: N=4 Natürliche Zahlen (positive ganze Zahlen ohne Vorzeichen) von 0 bis 2N-1 Ganze Zahlen (positiv und negativ) zwischen -2N-1 und 2N-1 -1 Ein Intervall von reellen Zahlen mit begrenzter Genauigkeit 0 bis 15 -8 und 7 Natürliche Zahlen (Länge 4 Bit): Dual dezimal 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Definition Bit und Byte : Bit: basic indissoluable information unit : In der Informationstheorie ist dies die kleinste Einheit für den Informationsgehalt einer Nachricht. o Mit 1 Bit lassen sich 21 = 2 Zustände darstellen. 2 22 4 3 3 2 8 8 28 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 256 2 Ingenieurinformatik Die Zusammenfassung von acht Bit heißt Byte. Dies ist die minimale Länge eines adressierbaren Datenworts. Der Rechner arbeitet immer mit Gruppen von Bits, entweder mit 8 Bits (1Byte), 16 Bits (2Byte), 32 Bits(4Byte) oder 64 Bits (8Byte), d.h. stets Vielfache von 8. Kilo, Mega, Giga Byte: 1 KByte enthält nicht 1000 Bytes sondern 210 gleich 1024 Bytes! 20 1 MByte enthält 1024x1024 = 2 Bytes. 30 1 GByte enthält 1024x1024x1024 = 2 Bytes. Beispiel: Gesucht Dezimaldarstellung der Dualzahl 10110 ? 1*24 + 0*23+1*22+1*21+0*20 = 16 + 0 + 4 + 2 + 0 = 22 Gewichtsfaktoren der Stellen im Dualsystem: 28 27 26 25 24 23 22 21 20 256 128 64 32 16 8 4 2 1 216 215 214 213 212 211 210 29 65536 32768 16384 8192 4096 2048 1024 512 Beispiel: Gesucht Dualdarstellung der Dezimalzahl 1641 ? 1641 : 2 = 820 820 : 2 = 410 410 : 2 = 205 205 : 2 = 102 102 : 2 = 51 51 : 2 = 25 25 : 2 = 12 Rest 1 Rest 0 Rest 0 Rest 1 Rest 0 Rest 1 Rest 1 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 modulo heißt: 1641 mod 2 = 1 3 Ingenieurinformatik 12 : 2 = 6 6:2=3 3:2=1 1: 2 = 0 Rest 0 Rest 0 Rest 1 Rest 1 Ergebnis: (11001101001)2 Probe: 1+8+32+64+512+1024 = (1641)10 Bedeutet: Zahl ist Dezimalzahl (Basis 10) 1.1 Dualzahlen mit Vorzeichen Das erste Bit (von links) wird als Vorzeichen Bit verwendet. Steht dort eine Null ist die Zahl positiv. Steht dort eine 1, also das komplementäre Bit zu 0, handelt es sich um eine negative Zahl. Dabei wird die Null als positive Zahl aufgefasst. Darstellbarer Bereich für 4 Dualstellen: Eine Stelle wird für das Vorzeichen Bit benötigt, d.h. es bleiben nur noch 3 Stellen und damit 3 2 = 8 Zahlen für den positiven Bereich und 8 Zahlen für den negativen (insgesamt 16). Da die Null als positive Zahl aufgefasst wird, ergibt sich eine Unsymmetrie: -8 bis -1 und 0 bis 7 Ganze Zahlen (Länge 4Bit): dual 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 dezimal 0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 4 Ingenieurinformatik Komplementbildung: Die negative Dualzahl ergibt sich, indem man bei der entsprechend positiven Zahl stellenweise alle Nullen durch Eins ersetzt und umgekehrt ( d. h. alle Bits invertiert) und eine Eins dazuaddiert. Die gleiche Regel gilt bei Umwandlung von negativer nach positiver Zahl ( Wohldefiniertheit ). Bei 4 Dualstellen gibt es keine Bitfolge für +8. Die Komplementbildung von -8 liefert demzufolge wieder (1000)2. (Gleiches gilt für die +16 bei 5 Dualstellen, siehe Zahlenring S. 11.) Achtung: Umwandeln einer Dualzahl in eine Dezimalzahl anhand der Gewichtsfaktoren gilt nur für positive Dualzahlen. Wenn die Dualzahl mit Vorzeichen zu interpretieren ist und an der ersten Binärstelle (von links) eine 1 hat, also negativ ist, muss diese zuerst durch Komplementbildung in die entsprechend positive Zahl (bzw. in ihren Betrag) konvertiert werden. Diese ist dann mit den Gewichtsfaktoren umzurechnen. Beispiel: Welchen Dezimalwert hat die mit Vorzeichen behaftete 5-Bit Dualzahl (10100)2 ? Anhand der 1 an der ersten Stelle von links, handelt es sich um eine negative Dualzahl. Demnach muss diese vor Anwendung der Gewichtsfaktoren in die entsprechend positive Dualzahl umgewandelt werden. Komplementbildung und 1 addieren: 01011 + 1 _____ 01100 1*8 + 1*4 +0*2 + 0*1 = 12 Ergebnis: -12 Subtraktion zweier Dualzahlen: Die Substraktion wird stets als Addition des negativen Betrags durchgeführt: a b a + (-b) Beispiel: Gegeben 4-stellige Dualzahlen: a=3 0011 b=7 0111 invertieren: 1 addieren: 1000 + 1 ________ 1001 0011 + 1001 ____________ 1100 = -4 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 5 Ingenieurinformatik Beispiel: Gegeben 4-stellige Dualzahlen: a=5 0101 b=5 0101 1010 1 _____ (1)0000 = 0 Überlauf entfällt, da Zahl auf 4 Stellen beschränkt ist. Dr.-Ing. K. Jäger-Hezel, 26.03.2007 6 Ingenieurinformatik 2 Hexadezimalsystem Polyadisches Zahlensystem zur Basis 16. Es verfügt über einen Vorrat von 16 Hexziffern, 0 bis 9, A, B, C, D, E, F. Der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links steigt in Potenzen zur Basis 16 (vgl. Gewichtsfaktoren). hexadezimal dual 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 dezimal 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Die Zahl 16 ist mit 1er Hex-Stelle bzw. 4 Dualstellen nicht mehr darstellbar. Zusammenhang zwischen Dual- und Hexadezimalsystem: 4 Bits ( sog. Halb-Byte) werden einer Hex-Ziffer zugeordnet. Dadurch wird für den Menschen eine lange Folge von Nullen und Einsen übersichtlicher. Gewichtsfaktoren der Stellen im Hexadezimalsystem: 165 1048576 164 65536 163 4096 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 162 256 161 160 16 1 7 Ingenieurinformatik Beispiel: Gesucht Dezimaldarstellung und Dualdarstellung für Hex-Zahl (9CB8)16 ? Dezimaldarstellung: Gewichtfaktoren einsetzen 9*4096 + 12*256 + 11*16 + 8*1 = (40120)10 Dualdarstellung: 1.Möglichkeit: Sukzessive Division der Dezimalzahl 40120 durch 2 40120 : 2 = 20060 20060 : 2 = 10030 10030 : 2 = 5015 5015 : 2 = 2507 2507 : 2 = 1253 1253 : 2 = 626 626:2 = 313 usw. Rest 0 Rest 0 Rest 0 Rest 1 Rest 1 Rest 1 Rest 0 2. Möglichkeit: Hexdezimal-Zahl direkt nach Dual umwandeln 9 C B 8 (1001 1100 1011 1000) 2 Im Dualsystem werden 16 Binärstellen benötigt, im Hex-System ¼ der Stellen, d.h. 4 Stellen. Beispiel: Gegeben ist Dezimalzahl 5555. Geben sie die zugehörigen hex und binär Zahlen an. 5555 :16 = 347 347 : 16 = 21 21 : 16 = 1 1 : 16 = 0 Rest 3 Rest 11 Rest 5 Rest 1 (1 5 B 3) 16 (0001 0101 1011 0011) 2 Frage: Wie viele hex-Stellen hat ein 16-bit Wort? Antwort: 16/4 = 4 Stellen Dr.-Ing. K. Jäger-Hezel, 26.03.2007 8 Ingenieurinformatik Beispiel aus HTML: Die Hintergrundfarben in HTML- Dokumenten werden in hex Zahlen angegeben. Der sog. RGB-Wert ( Red Green Blue Anteil) einer Farbe ergibt sich aus einer 6-stelligen Hex-Zahl, jeweils 2 Stellen für einen Farbanteil. z.B. R G B # 00 00 00 # ff ff ff # ff 00 00 # 00 ff 00 schwarz weiß rot grün Es können auf diese Weise 166 verschiedene Farben codiert werden ( 224 ca. 16,7 Mio ). Dr.-Ing. K. Jäger-Hezel, 26.03.2007 9 Ingenieurinformatik 3 Oktalsystem Polyadisches Zahlensystem zur Basis 8. Es verfügt über einen Vorrat von 8 Ziffern, 0 bis 7. Der Stellenwert einer Ziffer (Wertigkeit) von rechts nach links steigt in Potenzen zur Basis 8 (vgl. Gewichtsfaktoren). Gewichtsfaktoren der Stellen im Oktalsystem: 84 83 82 81 80 4096 512 64 8 1 oktal dual dezimal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Beispiel: (177)8 in Dezimalzahl umwandeln. 1*64 + 7*8 + 7 = (127)10 Probe: 127 : 8 = 15 Rest 7 15 : 8 = 1 Rest 7 1 : 8 = 0 Rest 1 Dr.-Ing. K. Jäger-Hezel, 26.03.2007 ( 1 7 7 )8 10 Ingenieurinformatik 4 Zahlenring Dr.-Ing. K. Jäger-Hezel, 26.03.2007 11