Purtroppo nel tuo programma trovo solo confusione.
Ho cercato di rifarlo seguendo la tua logica in un modo molto più chiaro e pulito.
Non riuscivo proprio a seguirlo il tuo.
PS è in c ma non cambia niente
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int numero1, numero2, base, numcifre=0;
int cifre[15], i;
int nuovo_numero=0;
printf("Inserisci la base ->");
scanf("%d", &base);
printf("Inserisci il numero ->");
scanf("%d", &numero1);
numero2 = numero1;
//conto le cifre
while(numero2 > 0) {
cifre[numcifre] = numero2 % 2;
numero2 = numero2 / 10;
numcifre++;
}
for(i=0;i<numcifre;i++){
nuovo_numero += cifre[i] * pow(base, i);
}
printf("Il numero e' %d", nuovo_numero);
return 0;
}
Se qualcosa non va, posso spiegartelo. Ma segue quasi tutto ciò che hai scritto tu.