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