BSZ für Elektrotechnik Dresden Zahlenformate Dr.-Ing. Uwe Heiner Leichsenring www.leichsenring-homepage.de Gliederung 1 Überblick 2 Grundaufbau der Zahlensysteme 2.1 Dezimalzahlen 2.2 Binärzahlen = Dualzahlen 2.3 Hexadezimalzahlen 2.4 Vorzeichenbehaftete Binärzahlen 3 Rechnen in den neuen Zahlenformaten 3.1 Addition 3.2 Subtraktion 3.3 Multiplikation 3.4 Division 1
1 Überblick Zahlensysteme Dezimalzahlen Binärzahlen Hexadezimalzahlen ohne Vorzeichen mit Vorzeichen ohne Vorzeichen mit Vorzeichen ohne Vorzeichen mit Vorzeichen Alltag Finanzen Uhrzeit Datum... Mathematik Wissenschaft Informationstechnik... Mathematik Informationstechnik... 2 Grundaufbau der Zahlensysteme 2
2.1 Dezimalzahlen Grundregeln: 1. Jede Dezimalziffer kann 10 verschiedene Zustände annehmen 0, 1, 2, 3,..., 9 2. Die Basis des Dezimalzahlensystems ist entsprechend die Zahl 10. 3. Die Wertigkeit einer Dezimalzahl VWXYZ berechnet sich wie folgt: Dezimalzahl: V W X Y Z Ziffernnummer: 4 3 2 1 0 Wertigkeit: V*10 4 + W*10 3 + X*10 2 + Y*10 1 + Z*10 0 2.2 Binärzahlen = Dualzahlen Wertigkeit der Binärzahlen und ihre Umrechnung in Dezimalzahlen: 1. Jede Binärziffer kann 2 verschiedene Zustände annehmen 0, 1 2. Die Basis des Binärzahlensystems ist entsprechend die Zahl 2. 3. Die Wertigkeit der Binärzahl IJKL MNOP berechnet sich wie folgt: Binärzahl I J K L M N O P Bitnummer 7 6 5 4 3 2 1 0 Wertigkeit I*2 7 + J*2 6 + K*2 5 + L*2 4 + M*2 3 + N*2 2 + O*2 1 + P*2 0 Wertigkeit = Dezimalzahl Die Wertigkeiten der Ziffern einer Binärzahl werden addiert. 3
2.2 Binärzahlen = Dualzahlen Beispiel: Binärzahl 0 1 1 0 1 0 1 0 Bitnummer 7 6 5 4 3 2 1 0 Wertigkeit 0*2 7 + 1*2 6 + 1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 0*128+ 1*64 + 1*32 + 0*16 + 1*8 + 0*4 + 1*2 + 0*1 0 + 64 + 32 + 0 + 8 + 0 + 2 + 0 = 106 2.2 Binärzahlen = Dualzahlen Umrechnen von Dezimalzahlen in Binärzahlen: Variante 1: Manuelles Zerlegen der Dezimalzahl in eine Summe einzelner Zweierpotenzen 47 = 32 + 15 15 = 8 + 7 7 = 4 + 3 3 = 2 + 1 45 = 32 + 8 + 4 + 2 + 1 45 = 2 5 + 2 3 + 2 2 + 2 1 + 2 0 45 = 10 1111 45 = 0010 1111 229 = 128 + 101 101 = 64 + 37 37 = 32 + 5 5 = 4 + 1 229 = 128 + 64 + 32 + 4 + 1 229 = 2 7 + 2 6 + 2 5 + 2 2 + 2 0 229 = 1110 0101 4
2.2 Binärzahlen = Dualzahlen Umrechnen von Dezimalzahlen in Binärzahlen: Variante 2: Wiederholte Division durch 2 mit Festhalten des Divisionsrestes 47 : 2 = 23 Rest: 1 (LSB) 23 : 2 = 11 Rest: 1 11 : 2 = 5 Rest: 1 5 : 2 = 2 Rest: 1 2 : 2 = 1 Rest: 0 1 : 2 = 0 Rest: 1 (MSB) 47 = 101111 = 0010 111 MSB LSB MSB = most significant bit LSB = last significant bit = höchstwertiges Bit = niederwertigstes Bit = erstes Bit einer Zahl = letztes Bit einer Zahl Ein Auffüllen einer Binärzahl mit führenden Nullen ist jederzeit möglich. Der Wert der Zahl verändert sich dabei nicht. 2.2 Binärzahlen = Dualzahlen Umrechnen von Dezimalzahlen in Binärzahlen: Variante 2: Wiederholte Division durch 2 mit Festhalten des Divisionsrestes 229 : 2 = 114 Rest: 1 (LSB) 114 : 2 = 57 Rest: 0 57 : 2 = 28 Rest: 1 28 : 2 = 14 Rest: 0 14 : 2 = 7 Rest: 0 7 : 2 = 3 Rest: 1 3 : 2 = 1 Rest: 1 1 : 2 = 0 Rest: 1 (MSB) 229 = 11100101 MSB LSB 5
2.2 Binärzahlen = Dualzahlen Zahlenbereiche von Binärzahlen ohne Vorzeichen: 4 Bit: größte positive Binärzahl = 1111 = 15 kleinste positive Binärzahl = 0000 = 0 8 Bit: größte positive Binärzahl = 1111 1111 = 255 kleinste positive Binärzahl = 0000 0000 = 0 16 Bit: größte positive Binärzahl = 1111 1111 1111 1111 = 65535 kleinste positive Binärzahl = 0000 0000 0000 0000 = 0 2.3 Hexadezimalzahlen Zur Abkürzung der binären Zahlendarstellung existieren die Hexadezimalzahlen: 4 Bit 1 Ziffer einer Hexadezimalzahl zugehörige Dezimalzahl 0000 0H 0 0001 1H 1 0010 2H 2 0011 3H 3 0100 4H 4 0101 5H 5......... 1001 9H 9 1010 AH 10 1011 BH 11 1100 CH 12 1101 DH 13 1110 EH 14 1111 FH 15 6
2.3 Hexadezimalzahlen 4 Bit = 1 Halbbyte = 1 Tetrade Hexadezimalzahlen werden durch ein H hinter der Zahl gekennzeichnet, um sonst mögliche Verwechslungen mit Dezimalzahlen auszuschließen! 8 Bit lassen sich somit durch 2 Hexadezimalziffern darstellen 0000 0000 00H 0001 0001 11H...... 2.3 Hexadezimalzahlen Wertigkeit der Hexadezimalzahlen und ihre Umrechnung in Dezimalzahlen: 1. Jede Hexadezimalziffer kann 16 verschiedene Zustände annehmen 0, 1, 2, 3, 4,..., D, E, F 2. Die Basis des Hexadezimalzahlensystems ist entsprechend die Zahl 16. 3. Die Wertigkeit der Hexadezimalzahl QRSTH berechnet sich wie folgt: Hexadezimalzahl Q R S T H Ziffernnummer 3 2 1 0 Wertigkeit Q*16 3 + R*16 2 + S*16 1 + T*16 0 Wertigkeit = Dezimalzahl Die Wertigkeiten der Ziffern einer Hexadezimalzahl werden addiert. 7
2.3 Hexadezimalzahlen Beispiel: Hexadezimalzahl 1 5 A 3 H Ziffernnummer 3 2 1 0 Wertigkeit 1*16 3 + 5*16 2 + A*16 1 + 3*16 0 1*4096 + 5*256 + 10*16 + 3*1 = 5539 2.3 Hexadezimalzahlen Umrechnen von Dezimalzahlen in Hexadezimalzahlen: Variante 1: Ermittlung der zugehörigen Binärzahl und deren Umwandlung in eine Hexadezimalzahl - einfache Methode 47 = 0010 1111 = 2FH 229 = 1110 0101 = E5H 8
2.3 Hexadezimalzahlen Umrechnen von Dezimalzahlen in Hexadezimalzahlen: Variante 1: Ermittlung der zugehörigen Binärzahl und deren Umwandlung in eine Hexadezimalzahl - einfache Methode 47 = 0010 1111 = 2FH 229 = 1110 0101 = E5H Variante 2: Zerlegen der Dezimalzahl in eine Summe von Produkten aus Faktoren kleiner 16 und der Potenzen von 16 - aufwendig 47 / 16 1 = 2,... 2 * 16 1 = 32 Rest: 47-32 = 15 15 / 16 0 = 13 13 * 16 0 = 13 Rest: 13-13 = 0 47 = 2 * 16 1 + 15 * 16 0 = 2FH 229 / 16 2 = 0,89... größte enthaltene Potenz von 16 ist 16 1 229 / 16 1 = 14,... 14 * 16 1 = 224 Rest: 229-224 = 5 5 / 16 0 = 5 5 * 16 0 = 5 Rest: 5-5 = 0 229 = 14 * 16 1 + 5 * 16 0 = E5H 2.3 Hexadezimalzahlen Umrechnen von Dezimalzahlen in Hexadezimalzahlen: Variante 3: Wiederholte Division durch 16 mit Festhalten des Divisionsrestes 47 : 16 = 2 Rest: 15 (niederwertigste Ziffer) 2 : 16 = 0 Rest: 2 (höchstwertigste Ziffer) 47 = 2FH 229 : 16 = 14 Rest: 5 14 : 16 = 0 Rest: 14 229 = E5H 9
2.4 Vorzeichenbehaftete Binärzahlen Betrachtungsweisen für Binärzahlen 1. Die Binärzahlen sind positive Zahlen ohne Vorzeichen (vgl. Abschnitt 2.2) z. B. 0110 1011 = 107 1110 1000 = 232 2. Die Binärzahlen werden als vorzeichenbehaftete Binärzahlen betrachtet: Das höchstwertige Bit (MSB = most significant bit) wird zum Vorzeichenbit, 0 heißt positives Vorzeichen, 1 heißt negatives Vorzeichen 0110 1011 > 0 1110 1000 < 0 2.4 Vorzeichenbehaftete Binärzahlen Betrachtungsweisen für Binärzahlen 1. Die Binärzahlen sind positive Zahlen ohne Vorzeichen (vgl. Abschnitt 2.2) z. B. 0110 1011 = 107 1110 1000 = 232 2. Die Binärzahlen werden als vorzeichenbehaftete Binärzahlen betrachtet: Das höchstwertige Bit (MSB = most significant bit) wird zum Vorzeichenbit, 0 heißt positives Vorzeichen, 1 heißt negatives Vorzeichen 0110 1011 > 0 1110 1000 < 0 Welche Betrachtungsweise benutzt wird, hängt von der jeweiligen Problemstellung ab. Treten nur positive Zahlenwerte auf, kann auf die Vorzeicheninformation verzichtet werden. Sind negative Zahlen nicht ausschließbar, muss mit vorzeichenbehafteten Binärzahlen gearbeitet werden. 10
2.4 Vorzeichenbehaftete Binärzahlen Der Wert einer negativen Binärzahl lässt sich nicht wie bei positiven Binärzahlen ermitteln. Mit Hilfe der Zweierkomplementbildung wird eine negative Binärzahl in eine positive Binärzahl umgewandelt (d. h. das Vorzeichen gewechselt) und von ihr der Wert wie bisher errechnet. Damit ist bekannt, welche Größe die negative Binärzahl hat. Schritte bei der Bildung des Zweierkomplements: 1. Binärzahl invertieren = negieren, d. h. aus 0 wird 1 und aus 1 wird 0 2. Addition von 1 Ausgangszahl: 0110 1011 = + 107 Negation: 1001 0100 Addition von 1: 1001 0101 = - 107 Ausgangszahl: 1110 1000 Frage: Welchen Wert hat diese negative Binärzahl? Negation: 0001 0111 Addition von 1: 0001 1000 = + 24 Antwort: Die Binärzahl hat den Wert -24. 1110 1000 = -24 2.4 Vorzeichenbehaftete Binärzahlen Zahlenbereiche von Binärzahlen mit Vorzeichen: Dezimalzahl Binärzahl 4 0000 0100 3 0000 0011 2 0000 0010 1 0000 0001 0 0000 0000-1 1111 1111-2 1111 1110-3 1111 1101-4 1111 1100 4 Bit: größte positive Binärzahl = 0111 = 7 kleinste negative Binärzahl = 1000 = - 8 8 Bit: größte positive Binärzahl = 0111 1111 = 127 kleinste negative Binärzahl = 1000 0000 = - 128 16 Bit: größte positive Binärzahl = 0111 1111 1111 1111 = 32767 kleinste negative Binärzahl = 1000 0000 0000 0000 = - 32768 11
3 Rechnen in den neuen Zahlenformaten 3.1 Addition Addition ohne Vorzeichen: Binärzahlen Hexadezimalzahlen Dezimalzahlen 0110 1010 = 6AH = 106 + 0011 0101 = + 35H = + 53 1001 1111 = 9FH = 159 0111 0011 = 73H = 115 + 0001 1111 = + 1FH = + 31 1001 0010 = 92H = 146 12
3.1 Addition Addition ohne Vorzeichen: Hexadezimalzahlen Dezimalzahlen 3A4FH = 14927 + B192H = + 45458 EBE1H = 60385 4321H = 17185 + FFFFH = + 65535 14320H = 82720 3.1 Addition Addition mit Vorzeichen: Binärzahlen Hexadezimalzahlen Dezimalzahlen 0110 1010 = 69H = 106 + 1010 0110 = + A6H = + (-90) 0001 0000 = 10H = 16 0011 0110 = 36H = 54 + 1000 1100 = + 8CH = +(-116) 1100 0010 = C2H = -62 13
3.2 Subtraktion Subtraktion ohne Vorzeichen: Binärzahlen Hexadezimalzahlen Dezimalzahlen 0110 1010 = 69H = 106-0011 0101 = - 35H = - 53 0011 0101 = 35H = 53 0111 0011 = 73H = 115-0001 1111 = - 1FH = - 31 0101 0100 = 54H = 84 3.2 Subtraktion Subtraktion ohne Vorzeichen: Hexadezimalzahlen Dezimalzahlen FFFFH = 65535-1234H = - 4660 EDCBH = 60875 14
3.2 Subtraktion Subtraktion mit Vorzeichen: Binärzahlen Hexadezimalzahlen Dezimalzahlen 0001 1010 = 19H = 26-1010 0110 = - A6H = - (-90) 0111 0100 = 74H = 116 1001 1011 = 9BH = (-101) - 1000 1100 = - 8CH = -(-116) 0000 1111 = 0FH = 15 3.3 Multiplikation Multiplikation von Binärzahlen: Binärzahlen Dezimalzahlen 10110111 * 01110010 = 183 * 114 0 10110111 10110111 10110111 0 0 10110111 0 1000100101 110011011110 101000101111110 = 20862 15
3.3 Multiplikation Multiplikation von Hexadezimalzahlen: Hexadezimalzahlen Dezimalzahlen F2H * 15H = 242 * 21 F2 4BA 13DAH = 5082 3.4 Division Division von Binärzahlen ohne Kommastelle: Dezimal: 20862 : 114 = 183 Binär: 101000101111110 : 01110010 = 10110111 01110010 0011000011 01110010 010100011 01110010 0011000111 01110010 010101011 01110010 001110010 01110010 0 16
3.4 Division Division von Binärzahlen mit Kommastelle: Dezimal: 15 : 4 = 3,75 Binär: 1111 : 100 = 11,11 = 1*2 1 +1*2 0 +1*2-1 +1*2-2 = 3,75 100 0111 100 110 100 0100 100 0 3.4 Division Division von Hexadezimalzahlen mit Kommastelle: Dezimal: 242 : 44 = 5,5 Hexadezimal: F2H : 2CH = 5,8H = 5 * 16 0 + 8 * 16-1 = 5,5 DC 160 160 0 17