Wir betrachten im folgenden Stellenwertsysteme. Nicht-stellenwertige Zahlensysteme wie römische Zahlen lassen wir aus.
Definition
Ein Stellenwertsystem ist ein Zahlensystem, bei dem der Wert einer Ziffer von ihrer Position innerhalb der Zahl abhängt.
Es gibt unendlich viele Zahlensysteme. Hier ein paar Beispiele.
| Basis | Ziffern | Stellenwerte Potenzschreibweise | Stellenwerte |
|---|---|---|---|
| 10 | 0,1,...,9 | ..., 103, 102, 101, 100 | ..., 1000, 100, 10, 1 |
| 2 | 0,1 | ..., 23, 22, 21, 20 | ..., 8, 4, 2, 1 |
| 3 | 0,1,2 | ... 33, 32, 31, 30 | ..., 27, 9, 3, 1 |
| 8 | 0,1,...,7 | ..., 103, 102, 101, 100 | ..., 512, 64, 8, 1 |
| 16 | 0-9,A,B,C,D,E,F | ..., 163, 162, 161, 160 | ..., 4096, 256, 16, 1 |
Vorgehen:
𝑍=𝑎𝑛⋅𝑏𝑛 + 𝑎𝑛−1⋅𝑏𝑛−1 + … + 𝑎1⋅𝑏1 + 𝑎0⋅𝑏0
Dabei gilt:
- b ... Basis des Zahlsystems
- n ... Anzahl der Stellen -1
- 𝑎𝑛 ... Ziffer des Zahlsystems
Aufgabe
Wandle folgende Zahlen in das Dezimalsystem um.
- (1101)2 = (13)10
- (1111)2 = (15)10
- (10000000)2 = (128)10
- (11111111)2 = (255)10
- (11110111)2 = (247)10
- (2010)3 = (30)10
- (40)5 = (20)10
- (F)16 = (15)10
- (C2)16 = (194)10
Vorgehen:
Beispiel:
(187)10 = (10111011)2
(187)10 = (BB)16

Aufgabe
Wandle folgende Dezimalzahlen in das gegebene Zahlensystem um.
- (100)10 = (...)2
- (161)10 = (...)2
- (65)10 = (...)16
- (17)10 = (...)3
def dez_to(zahl: int, basis: int) -> int:
reste = []
zwischenergebnis = zahl
while zwischenergebnis != 0:
rest = zwischenergebnis % basis
zwischenergebnis = zwischenergebnis // basis
reste.append(rest)
ergebnis = ""
reste.reverse()
for rest in reste:
ergebnis = ergebnis + str(rest)
return int(ergebnis)
print(dez_to(10,2))
print(dez_to(64,2))
print(dez_to(255,2))
Das uns allen bekannte schriftliche Addieren funktioniert in allen Zahlensystemen.
Im Binärsystem ist
0 + 0 = 0
0 + 1 = 1
1 + 0 = 0
1 + 1 = 0 (Übertrag 1)
Beispiel im Binärsystem: 2(10) + 10(10)
0010
1010
-------
1100