Zahlensysteme

Die in der Informatik gängigen Zahlensysteme zu verstehen ist unabdingbar für jegliche professionelle Programmierer und Netzwerktechniker. Die in der Software- und Netzwerktechnik vorkommenden Zahlensysteme sind Stellenwertsysteme.

Stellenwertsysteme basieren auf der bestimmten Wertigkeit einer Position (Stelle) jeder Ziffer. Ein typisches Zahlensystem, welches kein Stellenwertsystem, sondern ein Additionssystem ist, ist das Notieren von Ereignissen/Objekten mit Strichen, beispielsweise das (für Bierdeckelnotizen bekannte) System, wonach vier Striche vertikal, der fünfte Strich diagonal dargestellt werden. Additionssysteme können auch in anderer Form dargestellt werden, sind gewöhnlicherweise aber nur für kleine Summen übersichtlich.

Stellenwertsysteme entsprechen einer anderen Logik, nämlich der der Stellenwerte.

Der Wert einer Zahl (Zahlenwert) wird nicht an Hand von Strichen oder anderen Symbolen abgezählt, sondern errechnet. Der Zahlenwert ist die Summe aus allen Ziffernwerten (die einer Zahl zugehörig sind). Die Ziffernwerte sind die jeweiligen Produkte aus Stellenwert und Nennwert.

Zahlenwert = ∑ Ziffernwerti = ∑ (Nennwerti x Stellenwerti)

Stellenwertsysteme im Alltag und der Informatik

Zahlen nach Stellenwertsystem dargestellt, werden nicht mit Strichen, sondern mit einer Folge von Ziffern angegeben.

Eine Ziffer ist ein Zeichen zur Darstellung von Zahlen aus einem Zeichenvorrat, der aus einer Ziffernzahl (Basis) x verschiedener Elemente besteht.

Das uns bekannteste und meist verwendete Zahlensystem ist das Dezimalzahlensystem (Zehnersystem, „dezi“ = „zehn“, zurückzuführen auf die zehn Finger des Menschen).

Dezimalzahlensystem: Basis = 10 Zeichenvorrat: 0,1,2,3,4,5,6,7,8,9

Nennwerte 1 5 2 6 , 4 5
Stellenwerte 103 102 101 100 , 10-1 10-2
Produkte nach Stellen 1*103 5*102 2*101 6*100 , 4*10-1 5*10-2
Wert (in Dezimal) 1526,45

Der Endwert einer Zahl ist die Summe aus allen Produkten nach Stellen. Ein aus den Nennwerten und den Stellenwerten.

Die zwei wichtigsten Zahlensysteme in der Informatik sind das Dualzahlensystem (Binärzahlsystem, Zweiersystem) und das Hexadezimalzahlensystem (Sechser- plus Zehnersystem).

Dualzahlensystem: Basis = 2;  Zeichenvorrat: 0, 1

Hexadezimalzahlensystem: Basis = 16; Zeichenvorrat: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Diese Zahlensysteme werden, auf Grund der alltäglichen Nutzung des Dezimalzahlensystems, am besten verstanden, wenn diese in das Dezimalzahlensystem umgewandelt werden.

Beispiel einer binären Zahl (Dualzahl):

Nennwerte 1 1 0 1 , 0 1
Stellenwerte 23 22 21 20 , 2-1 2-2
Produkte nach Stellen 1*23 1*22 0*21 1*20 , 0*2-1 1*2-2
Wert (in Dezimal) 8+ 2 + 0 + 1 + 0 +1/4 = 13,25

Beispiel einer Hexadezimalzahl:

Nennwerte A F 2 C , 0 D
Stellenwerte 163 162 161 160 , 16-1 16-2
Produkte nach Stellen 10*163 15*162 2*161 12*160 , 0*16-1 13*16-2
Wert (in Dezimal) 40960+ 3840 + 32 + 12 + 0 + 0,05 = 44844,05

Ein weiteres gängiges Zahlensystem ist das Oktalzahlensystem (Achtersystem), auf welches an dieser Stelle jedoch nicht weiter eingegangen wird.

Oktalzahlensystem: X = 8; Zeichenvorrat: 0,1,2,3,4,5,6,7

Zurückrechnen vom Dezimalsystem ins Dualsystem

Dezimalzahl 79 in Dual umrechnen:

79 / 2 = 39 Rest 1 (da 0,5 * 2 = 1)

39 / 2 = 19 Rest 1

19 / 2 = 9 Rest 1

9 / 2 = 4 Rest 1

4 / 2 = 2 Rest 0

2 / 2 = 1 Rest 0

1 / 2 = 0 Rest 1

=> 1001111

Zurückrechnen vom Dezimalsystem ins Hexadezimalsystem

Dezimalzahl 79 in Hexadezimal umrechnen:

79 / 16 = 4 Rest F (0,9375 * 16 = 15 = F)

4 / 16 = 0 Rest 4

=> 4F

Umrechnen von Dualzahlen in Hexadezimalzahlen

Diese Rechnung ist sehr einfach. Es gilt: Vier Stellen der Dualzahl entspricht einer Stelle einer hexadezimalen Zahl. Als Zwischenschritt werden die vier Stellen (immer ausgehend vom Komma) abgezählt und dezimal betrachtet.

Umrechnen der Dualzahl 1001111 in Hexadezimal:

dual 0100 1111
dezi. 0*24+1*2³+0*2²+0*21 = 4 >1*24+1*2³+1*2²+1*21 = 15
hexadezimal 4 F

(Achtung! Auf diese Weise kann die Binärzahl nicht in das Dezimlasystem umgerechnet werden! 1001111 sind nicht 4 + 15 sondern 79!)

Umrechnen von Hexadezimalzaheln in Dualzahlen

Umgekehrt funktioniert dies genauso gut. Ein anderes Beispiel mit der hexadezimalen Zahl B0D3:

hexadezimal B 0 D 3
dezi. 11 0 13 3
dual 1011 0000 1101 0011

(Achtung! Auf diese Weise kann die Hexadezimalzahl B0D3 nicht in das Dezimalsystem umgerechnet werden! B0D3 ist nicht 11 + 0 + 13 + 3 sondern 45267)

Rechnen mit dem Dualzahlensystemen

Addition von Dualzahlen

0 + 0 = 0
1 + 0 = 1  bzw. 0 + 1 = 1
1 + 1 = 0 Rest 1
1 + 1 + 1 = 1 Rest 1
1 + 1 + 1 + 1 = 0 Rest 1 und 1 (zwei Einsen)

Die Restwerte werden als Überträge in die Rechnung (immer für die nächst höhere Stelle) mit eingebracht. Überträge werden hier blau dargestellt.

Beispiel: 110111 + 10110 = 1001101

1 1 0 1 1 1
+ 1 0 1 1 0
1 1 1 1
______________
1 0 0 1 1 0 1

Beispiel: 101111 + 11111 + 10010 = 1100000

1 0 1 1 1 1
+ 1 1 1 1 1
+
1 0
0 1 0
1 1 1 1
1 1 1 1 1 1
______________
1 1 0 0 0 0 0

Subtraktion von Dualzahlen

  1. Fall – Minuend ist größer als Subtrahend:
    Beispiel: 11011 – 110 = 10101

    1.) 110 auf gleiche Stellenzahl bringen -> 00110
    2.) den Subtrahend umkehren -> 11001
    3.) den Subtrahend zum Minuend addieren

    Minuend 1 1 0 1 1
    Umgekehrter Subtrahend 1 1 0 0 1
    Überlauf 1 1 1 1
    Summe 1 0 1 0 0

    4.) Aus dem Überlauf wird dann nochmals die verbleibende 1 hinzu addiert!

    1 0 1 0 0
    Plus Überlauf 0 0 0 0 1
    Summe 1 0 1 0 1

    Die letzte Summe ist das Ergebnis 10101.

    Weiteres Beispiel: 101110 – 100

    Minuend 1 0 1 1 1 0
    Umgekehrter Subtrahend 1 1 1 0 1 1
    Überlauf 1 1
    1 1
    1

    Summe 1 0 1 0 0 1

    Aus dem Überlauf wird dann nochmals die verbleibende 1 hinzu addiert!

    1 0 1 0 0 1
    Plus Überlauf 0 0 0 0 0 1
    1
    Summe 1 0 1 0 1 0

    Das Ergebnis lautet: 101010

  2. Minuend ist kleiner oder gleich Subtrahend
    Beispiel:  11010 – 111011 = ???
    1.) Subtrahend umkehren: 111011 -> 000100
    2.) Zum umgekehrten Subtrahend 1 addieren: 000100 + 000001 = 000101
    3.) Minuend und umgekehrten Subtrahend addieren:

    Minuend 0 1 1 0 1 0
    Neuer Subtrahend 0 0 0 1 0 1
    Überlauf
    Summe 0 1 1 1 1 1

4.) Die Summe wird wiederum umgekehrt: 011111 -> 100000
5.) Zur umgekehrten Summe wird eine 1 hinzu addiert: 100000 + 00001 = 100001

Das Ergebnis lautet 100001 (negativ, da eine größere Zahl von einer kleineren Zahl abgezogen wurde).

Multiplizieren von Dualzahlen:

Ein einfaches Beispiel: 1010 x 110 = 111100

1 0 1 0
x 0 1 1 0
__________________
0 0 0 0
1 0 1 0
1 0 1 0
0 0 0 0
__________________
1 1 1 1 0 0

Die Multiplikation kann sich auch etwas komplexer gestalten, so dass Überträge (blaue Zahlen) zu berücksichtigen sind. Beispiel: 1011011 x 10011 = 11011000001

1 0 1 1 0 1 1
x 1 0 0 1 1
___________________________
1 0 1 1 0 1 1
1 0 1 1 0 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 1 1 0 1 1
1 1
1 1 1 1 1 1 1 1
___________________________
1 1 0 1 1 0 0 0 0 0 1

Division von Dualzahlen

Die Division beginnt immer beim Divident an der Stelle mit dem höchsten Stellenwert (ganz links). Es wird schrittweise versucht, den Dividenten durch den Divisor zu teilen.

  • Kann der Divisor vom Dividenten vollständig (mit Dualsubtraktion) subtrahiert werden?
    • Wenn ja, dann eine 1 im Ergebnis verzeichnen und mit Rest weiter rechnen.
    • Wenn nein, dann eine 0 im Ergebnis verzeichnen und eine Stelle nach rechts rücken, wieder von vorne mit der Frage beginnen.

Beispiel: Divident = 10110; Divisor = 101

1 0 1 1 0 : 1 0 1 = 1 0 0
1 0 1 Rest 10
1 0 1
______
0 1 0

Weiteres Beispiel: Divident = 1011101; Divisor = 111

1 0 1 1 1 0 1 : 1 1 1 = 0 1 1 0 1
1 0 1 1 Rest 10
1 1 1
________
1 0 0 1
1 1 1
_____
1 0 0
1 1 1
______
1 0 0 1
1 1 1
________
1 0

Rechnen mit dem Hexadezimalzahlensystemen

Addieren von Hexadezimalzahlen:

Beispiel: AB96F + 2A3 = ABC12

A B 9 6 F
+ 2 A 3
1 1
_______________
A B C 1 2

Beispiel: 40A113 + 13248 + ECEDF + F2CE9F = 14370D9

4 0 A 1 1 3
+ 1 3 2 4 8
+
E C
E D F
+ F 2 C E 9 F
1 1 2
2
1 2
_______________
1 4 3 7 0 D 9

Multiplizieren von Hexadezimalzahlen:

Bei der Multiplikation müssen Überträge bereits bei der Multiplikation berücksichtigt werden.
Ein einfaches Beispiel: ABB x 208 = 15CBD8

A B B
x 2 0 8
__________________
5 5 5
5 5 D 8
0 0 0 0
1 1 1
1 5 7 6
__________________
1 5 C B D 8

Beispiel: FD12A x CF4 = CCE15408

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