Java - Decimal a binario en java

   
Vista:

Decimal a binario en java

Publicado por David (1 intervención) el 21/12/2016 22:10:32
Buenas. Estoy empezando en java y me pidieron un ejercicio para aprender el uso de las clases, los objetos y la funciones. Decidí hacer un programa que convirtiera decimal a binario, que te pide un numero en una clase, lo pasa a otra que hace todos los cálculos y devuelve el número en binario, y la primera clase lo imprime. El problema es que ponga el numero que ponga me sale que el binario es infinito. este es el código de la clase que me lo calcula.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package matematicas;
 
public class Matematicas {
 
    public double x;
 
    public double Binario() {
        double r, c=0, y=0, p=x;
        while(p!=0){
        r=(p%2);
        y=y+r*Math.pow(10, c);
        c ++;
        p=p/2;
        }
        return y;
    }
Esa es la clase que calcula que es donde pienso que debe estar el error ya que la otra solo lee por teclado e imprime. Gracias, cualquier aportación me sera de ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Decimal a binario en java

Publicado por Andres (1 intervención) el 23/12/2016 02:06:38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar