jueves, 2 de mayo de 2013

Ejercicio conversión binario a decimal Deitel 4.31

Saludos dejo mi programa en java. respecto a los ejercicios del libro Deitel que es muy bueno y mi favorito hasta el momento.

El programa consiste en coonvertir un numero binario a decimal sin utilizar un método ya predefinido en java, solo se tiene que utilizar el operador % y la división ademas de algun o algunos ciclos.

public void binarioDecimal()
    {
        int numero = 0;
        int contador = 1;
        int cifraBinaria = 0;
        System.out.println("Por favor introduzca un número binario");
        Scanner entrada= new Scanner(System.in);
        numero = entrada.nextInt();
       
        //mientras numero sea mayor o igual a 1 entra al ciclo        
        while (numero>=1)
        {
            //cifraBinaria es igual a su valor mas el módulo de numero multimplicado por la posición del bit el cual es controlado por el contador
            // ejemplo 1*1 = 1
            cifraBinaria +=  (numero%10 * cuadradoPosicion(contador));
            //incrementamos el contador
            contador++;
            //dividimos a numero entre diez y el resultado será tomado como el nuevo valor para ser evaluado en el while
            numero/=10;    
        }
       
   
    System.out.println("El número binario es:" + cifraBinaria);
    }
   
    public int cuadradoPosicion(int cuadrado)
    {
        int contador = 1;
        int acomulador = 1;
        //evaluamos el while en la condición controlado por el numero "cuadrado"
        //si el valor es 1 no entra al ciclo
        while (contador<cuadrado)
        {
            //se acomula la multiplicación de 1 * 2= 2 ; 2*2 = 4 .....
            acomulador *= 2;
            contador++;
        }       
        return acomulador;
       
    }


solo falta crear la clase que contenga a los dos metodos y agregar algunos accesos a los paquetes sobre todo al impot java.util.system.scanner