Ausdrücke wie 10^i sollte man unbedingt vermeiden. Es gibt da im Prinzip 2 Möglichkeiten:
1) Man fängt vorne an und zieht in einer Schleife so oft Zahlen wie 1000 ab, bis man unter 1000 kommt. Bei 5 Stellen sind das dann ggf. halt while Schleifen. Das ist zwar nicht elegant, geht aber recht schnell, auch mit einem 8 Bit µC.
2) Man fängt hinten an, so ähnlich wie es oben wohl gemeinst war: Teilen durch 10 mit merken des Restes. Vielfach gibt es dazu eine Spezielle Funktion. Der Rest ist dann die hintere Stelle. Das Wiederholt man bis man bei 0 angekommen ist. Das ist bei den meisten µC nicht ganz so schnell, aber dafür recht kurz. Wenn man die Routine für das Teilen in ASM schreibt ist das Verfahren auch recht schnell, weil man halt eine spezielle Routine für das Teilen durch eine 8 Bit Zahl nutzen kann, das ist auf eine 8 Bit µC deutlich schneller als die volle 32 Bit Arithmetik die die meisten Compiler da nutzen.
Lesezeichen