Java - Convertir numero decimales a binario

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Francisco (10 intervenciones) el 18/02/2020 22:05:30
Tengo el código donde ingreso una cierta cantidad de números que van del 0 al 9 estos números los almaceno en un arreglo de tipo int después tengo que convertir cada uno de los números que hay en el arreglo en binario de 4 cifras es decir si en el arreglo se encuentra un 1 su equivalente en binario seria 0001 si ingreso el 4 su equivalente seria 0100 etc. Ya cuento con el código que me transforma los números a binario pero el problema es que si ingreso el 1 solo como binario 01 no se como agregar los ceros que faltan dejo mi código aquí:

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
31
32
33
34
35
36
37
38
39
40
41
42
public static void main(String[] args) {
            String f_h;
            String fecha_hora;
            fecha_hora = JOptionPane.showInputDialog(null, "Ingrese la fecha dd/mm/aa y la hora");
            f_h = fecha_hora.replaceAll("/|\\s|:", "");
            int[] digitos = new int[14];
            String cad;
            int ent;
            char[] caracteres = f_h.toCharArray();
            for (int i = 0; i < caracteres.length; i++) {
                cad = Character.toString(caracteres[i]);
                ent = Integer.parseInt(cad);
                digitos[i] = ent;
            }
            for (int i = 0; i < digitos.length; i++) {
                System.out.print(digitos[i]);
            }
            System.out.println("");
            for (int i = 0; i < digitos.length; i++) {
                System.out.println(obtenerBinario(digitos[i]));
            }
        }
 
    public static String obtenerBinario(int numero) {
        ArrayList<String> binario = new ArrayList<String>();
        int resto;
        String binarioString = "";
 
        do {
            resto = numero % 2;
            numero = numero / 2;
            binario.add(0, Integer.toString(resto));
        } while (numero >= 2);
 
        binario.add(0, Integer.toString(numero));
 
        for (int i = 0; i < binario.size(); i++) {
            binarioString += binario.get(i);
        }
        return binarioString;
    }
}
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Rodrigo (623 intervenciones) el 18/02/2020 22:33:09
SI el numero de digitos binarios es siempre 4, o ese es tu objetivo, que siempre sean 4, podrias hacer que el do - while, tenga esa condicion de salida, que el numero de digitos binarios que hayas generado sea 4, y sigues dividiendo el numero por 2, cuando sea 0 seguira en 0 y te proveera de los 0 que requieres para completar los 4.

Si usas esto, tienes que eliminar la insercion que esta fuera del do-while.
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
sin imagen de perfil
Val: 14
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Francisco (10 intervenciones) el 18/02/2020 22:46:27
Ok pero como seria esa condición no tengo idea de como añadirla while
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Rodrigo (623 intervenciones) el 18/02/2020 23:13:04
define un contador que parte en 0, el while es mientras el contador sea menor que 4, por cada vuelta el contador incrementa en 1.
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
Imágen de perfil de Sandro Makaviel
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Sandro Makaviel (166 intervenciones) el 20/02/2020 16:44:48
a puedes complementarlo de esta forma ya probado a 2020020928

1
2
3
4
5
6
System
			.out
			.println								(	obtenerRealBinario
													(			convert
																	.stringToLong
													(				f_h						)))	;

y agregando este método
1
2
3
4
5
6
7
8
9
10
11
12
public	static	String	obtenerRealBinario		(	long
															numero							)	{
		String		binario							=	""										;
		for	(	long		i						=	numero									;
							i						>	0									;
							i						=	i	/	2							)	{
			long		digito						=	numero	%	2							;
			numero									/=	2										;
			binario									=	digito	+	binario						;
		}
		return		binario																		;
	}

ya que no me gusta las terminaciones del original

demostración:

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
31
32
33
34
35
36
37
38
39
1	2	0	0
2	4	0	0
4	8	0	0
8	16	0	0
16	32	0	0
32	64	1	32
64	128	1	64
128	256	1	128
256	512	1	256
512	1024	1	512
1024	2048	1	1024
2048	4096	1	2048
4096	8192	0	0
8192	16384	0	0
16384	32768	1	16384
32768	65536	1	32768
65536	131072	1	65536
131072	262144	0	0
262144	524288	1	262144
524288	1048576	1	524288
1048576	2097152	0	0
2097152	4194304	0	0
4194304	8388608	0	0
8388608	16777216	0	0
16777216	33554432	0	0
33554432	67108864	1	33554432
67108864	134217728	1	67108864
134217728	268435456	1	134217728
268435456	536870912	1	268435456
536870912	1073741824	0	0
1073741824	2147483648	0	0
2147483648	4294967296	1	2147483648
4294967296	8589934592	0	0
8589934592	17179869184	1	8589934592
17179869184	34359738368	1	17179869184
34359738368	68719476736	1	34359738368
68719476736	137438953472	0	0
137438953472	274877906944	1	137438953472
			200220200928

saludos
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Convertir numero decimales a binario

Publicado por Rodrigo (623 intervenciones) el 21/02/2020 01:46:58
Pensandolo mas, dado que solo son 10 digitos, tal vez es mas corto y facil tener un arreglo con todas las conversiones ya listas en un vector y usar el digito como indice de este para obtener el correspondiente string.

Algo asi:

1
2
3
4
5
6
7
8
9
String [] conversiones = { "0000", "0001", "0010", "0011",
                           "0100", "0101", "0110", "0111",
                           "1000", "1001" };
 
// Verificando que esto funciona, usando el digito como indice:
for( int i = 0; i < 10; i++) {
   System.out.print(i);
   System.out.println(":" + conversiones[i]);
}
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