Por favor, activa JavaScript y desactiva tu adblock para este sitio

El Javatar

Blog dedicado a la Programación en Java, C, PHP, Phyton, HTML, SQL y Mucho Más

viernes, 11 de abril de 2014

Como Convertir un Numero Decimal a Binario en Java

En este artículo veremos el código fuente en Java para convertir un número decimal ingresado por el usuario a su equivalente en binario. No veremos como es el proceso, ya que este lo vimos cuando explicamos el Algoritmo. Para revisar la entrada haz clic aquí.

Veamos el código fuente en Java:


import java.util.Scanner;

/**
 *
 * @author Andres
 */
public class DecimalABinario {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Ingrese un número en el sistema decimal positivo");
        int numero = scanner.nextInt();
        String binario = "";
        if (numero > 0) {
            while (numero > 0) {
                if (numero % 2 == 0) {
                    binario = "0" + binario;
                } else {
                    binario = "1" + binario;
                }
                numero = (int) numero / 2;
            }
        } else if (numero == 0) {
            binario = "0";
        } else {
            binario = "No se pudo convertir el numero. Ingrese solo números positivos";
        }
        System.out.println("El número convertido a binario es: " + binario);
    }
}

Para probar este código vamos a ejecutarlo sobre el IDE de NetBeans. Convertiremos el número 13, es decir, que el resultado que nos debe arrojar el programa es 1101. Veamoslo:

Como Convertir un Numero Decimal a Binario en Java

9 comentarios:

  1. Gracias, me fue de gran ayuda su aporte..like..

    ResponderBorrar
  2. gracias amigo tu código esta bien diseñado me ayudo de mucho...

    ResponderBorrar
  3. y como puedo hacer para que me lo vaya mostrando en columna?

    ResponderBorrar
    Respuestas
    1. Supongo que lo que quieres es que en vez de que se muestre en línea así: "1101", se muestre de forma vertical así:
      1
      1
      0
      1

      Si esto es lo que quieres, tan sólo debes agregar un salto de línea cuando se está concatenando el binario de la siguiente forma:

      if (numero % 2 == 0) {
      binario = "0" + "\n" + binario;
      } else {
      binario = "1" + "\n" + binario;
      }

      Borrar
  4. Disculpa como le puedo hacer para que lo devuelva en string?

    ResponderBorrar
    Respuestas
    1. Si te fijas, el resultado se va concatenando en la variable "binario" que es de tipo String. Si lo que quieres es que el resultado te lo devuelva desde un método, lo que deberías es sacar el código que empieza desde donde se declara la variable binario (línea 13), hasta donde finaliza el último else (línea 27), y finalmente hacerle un return a la variable binario; recuerda que a este método se le debería pasar como parámetro la variable "numero" que es el valor que se ingresa y se desea convertir en binario

      Borrar
  5. una pregunta porque dentro del else igualas la variable binario a 1

    ResponderBorrar