*Mecker* Code-Tags benutzen *Mecker*
Das sieht irgendwie total kompliziert aus, was du da gebastelt hast.
In der ersten While zählst du die Anzahl der Ziffern der binären Zahl.
In der zweiten While nimmst du die Anzahl der Ziffern als 2^Exponent. Wozu das gut sein soll, erschließt sich mir nicht.
Was in der dritten While passiert, kann ich nicht richtig deuten. Aus meiner Sicht rechnet er da wild in der Gegend herum.
Warum nimmst du nicht den bekannten Standardalgorithmus für die Umrechnung von Binär in Dezimal?
Also einfach die binäre Zahl als Ansammlung von Exponenten zur Basis 2 sehen.
11111 = 2^4 + 2^3 + 2^2 + 2^1 + 2^0
10
10
1 =
2^4 + 0^3 +
2^2 + 0^1 +
2^0
Wenn man das so betrachtet, dann gehst du einfach per Schleife die binäre Zahl durch, schaust, ob an der Stelle eine 0 oder 1 steht und wenn da eine 1 ist, dann rechnest du 2^(Zifferposition von rechts - 1). Und nun nur noch die ganzen Ergebnisse der Potenzrechnungen addieren, fertig.