Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/04/2015, 11:27
Avatar de tur2ra
tur2ra
 
Fecha de Ingreso: abril-2015
Ubicación: Delante de la pantalla
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: Función decimal -> binario

Es que lo curioso es que en algunos valores me resta 1 usando exactamente el mismo algoritmo y en otras no. Por ejemplo:

Entro el 4 en decimal y me retorna 99 ( en lugar de 100)

entro el 32 y me retorna 100000 (correcto)

entro el 8 -> 1000 (correcto)

entro el 16 -> 9999 (fail)


No tengo ni idea de que probar ya
------------------------------------------------CÓDIGO----------------------------------------------

void decimalAbinari(int x){
//Declarem variables
int binari=0, diferencia=x;
//ALGORITME
while (diferencia!=0){
int potencia=0;

if (diferencia==1){
binari=binari+1;
diferencia=diferencia-1;
}

else if (diferencia==2){
binari=binari+10;
diferencia=diferencia-2;
}

else if (diferencia>2){
int potencia=0;
while(diferencia>(pow(2, potencia+1)))potencia++;
if(diferencia==(pow(2, potencia+1))){
potencia++;
binari=pow(10, potencia);
diferencia=0;
}
else{
binari=binari+pow(10, potencia);
diferencia=diferencia-pow(2, potencia);
}
}

else break;
}

Última edición por tur2ra; 05/04/2015 a las 11:31 Razón: adjunto código actualizado, con el que me pasa esto