Umwandlung der Zahl eines beliebigen Zahlensystems in eine Dezimalzahl (263)
Aufgabe
Die Zahl aus einem beliebigen (frei wählbaren) Zahlensystem soll in eine Dezimalzahl umgewandelt werden.
A
B
C
1
Zahl
System
ergibt
2
F2B
16 (HEX)
3.883
3
Y1
35
1.191
4
267
8 (Oktal)
183
5
110001
2 (Binär)
49
Lösung
In A1 steht die Zahl.
In B1 steht die Zahlenbasis, von der umgerechnet werden soll (maximal 36).
in A4 bis A43 stehen die Zahlen 0 1 2 3 ... bis 39
in B4 steht:
=TEIL(A$1;LÄNGE(A$1)-A4;1)
in C4 steht:
=WENN(LÄNGE(A$1) < A5;0;1*WENN(ISTFEHLER(B4*1);CODE(GROSS(B4))-55;B4))
in D4 steht:
=C4*$B$1^A4
B4, C4 und D4 bis Zeile 42 runterkopieren (diesen Bereich ausblenden).
das Ergebnis:
=SUMME(D4:D42)
Wer will; - in A2 noch eine Warnung bei falschen Eingaben:
=WENN(LÄNGE(C1)>=23;"Dezimalzahl wird zu Groß (> 15 Stellen)";WENN(MAX(C4:C40)>100;"keine Umlaute und kein �";WENN(UND(B1>1;MAX(C4:C40)>B1-1);"maximal "&WENN(B1>10;ZEICHEN(B1-1+55);B1-1);"")))
Lösung mit Array-Formel ohne Hilfsspalten siehe:
http://www.excelformeln.de/formeln.html?welcher=272
Erläuterung
Ab Excel-2013 sind obige Handstände überflüssig mit der Winzformel:
=DEZIMAL(A1;B1)