05/04/2015, 11:27
|
| | | Fecha de Ingreso: abril-2015 Ubicación: Delante de la pantalla
Mensajes: 6
Antigüedad: 9 años, 7 meses 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
|