Probleme mit der Berechnung von Integer-Werten

Ja, dass ist bestimmt schon eine sehr gute Lösung aber ich bereite ein Schülerprojekt vor woran ein paar Grundlagen erlernt werden sollen und ich denke dafür ist die Lösung zu komplex.
Ich hätte aber noch eine weitere Frage .. Ich habe es jetzt anstatt mit der pow()-Funktion über die bit()-Funktion geschrieben und es funktioniert auch gut aber wenn ich zweistellige Werte habe und die Schalter ausschalte behält das Display immer die letzten Zeilen Bsp: 128 wird angezeigt und nach abschalten des Schalter steht im Display für etwa 30 Sekunden 28. Warum ist das so???