package com.jlm.ccb.ejercicios.capitulo4; import java.util.InputMismatchException; import java.util.Scanner; /** * Clase encargada de convertir un número * binario a un número decimal. * Ejercicio 4.31 * @author LorettoTG * @version 1.0 */ public class Binario { /** * Método encargado de convertir el número binario * a un número decimal. */ public void convertir() { //Se crea un objeto Scanner para obtener la entrada //de datos del usuario. Scanner entrada = new Scanner(System.in); int entero = 0; System.out.println("Ingrese un número " + "compuesto solo de 0s y 1s"); //Es el bloque de código donde se prevé que se //genere una excepción. Es como si dijésemos //"intenta estas sentencias y mira a ver si //se produce una excepción". El bloque try //tiene que ir seguido, al menos, por una //cláusula catch o una cláusula finally try { entero = entrada.nextInt(2); System.out.println(entero); } //Es el código que se ejecuta cuando se produce la excepción. //Es como si dijésemos "controlo cualquier excepción que //coincida con mi argumento" catch (InputMismatchException exception) { System.out.println("No ingreso un" + " entero de solo digitos 0 y 1"); } System.out.println("Ingrese otro número " + "compuesto solo de 0s y 1s"); try { entero = entrada.nextInt(2); //Se convierte a un binario ya que cuando lo //recibimos lo convierte //a un entero decimal en automático, después //lo convierte en un entero. int enteroBinario = Integer.valueOf(Integer.toBinaryString(entero)); int numeroConvertido = 0; int contador = 0; //En el caso del ciclo while: Primero se evalúa //la condición de entrada //si es verdadera ejecuta las sentencias en su cuerpo, //luego vuelve a //verificar la condición de entrada y hasta que sea //falsa sale del ciclo. while (enteroBinario > 0) { numeroConvertido += (enteroBinario % 10) * (int) Math.pow(2, contador); contador ++; enteroBinario = enteroBinario / 10; } System.out.println(numeroConvertido); } catch (InputMismatchException exception) { System.out.println("No ingreso un entero " + "de solo digitos 0 y 1"); } catch (NumberFormatException exception) { System.out.println("Hubo un problema en la conversión"); } } /** * Punto de entrada a la clase y a la aplicación. * @param args matriz de argumentos de cadena. */ public static void main(String[] args) { Binario binario = new Binario(); binario.convertir(); } }
Un blog dedicado a los bytes, al lenguaje java y diferentes frameworks que se emplearan poco a poco.
domingo, 4 de septiembre de 2011
Como Programar en Java: Ejercicio 4.31
Aquí esta el ejercicio 4.31 de Como Programar en Java séptima edición.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario