BInario a decimal??
Publicado por Jesusr (2 intervenciones) el 18/12/2008 03:45:05
Tengo una tarea para la escuela;
pasar numeros binarios que el usuario introdusca a decimal, no puedo usar funciones nativas de java (Integer.ParseInt(variable,2)).
Tengo una idea de como hacerlo, aqui dejo el codigo que he hecho:
menu=JOptionPane.showInputDialog("Ahora introduce el numero binario:");
double num=0;
while((menu.length()-1)!=v2)
{
if(menu.charAt(v2)==49)
{
num=num+1*Math.pow(2,v2);
v2++;
}
else if(menu.charAt(v2)==48)
{v2++;}
else
{JOptionPane.showMessageDialog(null, "El numero que introduciste no es binario!");}
}
JOptionPane.showMessageDialog(null, "EL resultado es:"+ num);
De hecho funciona con numeros binarios como 101 o 10101, pero tiene un problema:
CUando se introduce un numero como 100 comienza a pmultiplicar de forma inversa (1 le asigna valor de 1 y salta dos veces el primer if), alguien que me ayude por favor!!!!
PD las variables esta bien inicializadas, no puse todo el programa debido a que el programa pasa a binario octal y hexadecimal y de vuelta a decimal, todo lo demas me sirve bien.
Saludos
pasar numeros binarios que el usuario introdusca a decimal, no puedo usar funciones nativas de java (Integer.ParseInt(variable,2)).
Tengo una idea de como hacerlo, aqui dejo el codigo que he hecho:
menu=JOptionPane.showInputDialog("Ahora introduce el numero binario:");
double num=0;
while((menu.length()-1)!=v2)
{
if(menu.charAt(v2)==49)
{
num=num+1*Math.pow(2,v2);
v2++;
}
else if(menu.charAt(v2)==48)
{v2++;}
else
{JOptionPane.showMessageDialog(null, "El numero que introduciste no es binario!");}
}
JOptionPane.showMessageDialog(null, "EL resultado es:"+ num);
De hecho funciona con numeros binarios como 101 o 10101, pero tiene un problema:
CUando se introduce un numero como 100 comienza a pmultiplicar de forma inversa (1 le asigna valor de 1 y salta dos veces el primer if), alguien que me ayude por favor!!!!
PD las variables esta bien inicializadas, no puse todo el programa debido a que el programa pasa a binario octal y hexadecimal y de vuelta a decimal, todo lo demas me sirve bien.
Saludos
Valora esta pregunta


0