in pratica voglio dire:
per calcolare i numero in una specificata base devo prendere un carattere alla volta. come faccio a prendere un carattere (o una cifra che era un carattere) alla volta per applicare il cambiamento di base e calcolare il nuovo numero?

es
char *s=1010;

se uso la atoi mi uscira come valore 1010 in decimale ma se il risultato lo voglio in binario, è chiaro che il numero convertito non è 1010 ma 10=0*2^0+1*2^1+0*2^2+1*2^3
quindi il 2 è il valore della base precedentemente impostato mentra le cifre sono calcolate dalla atoi.