Java - Binario Decimal JAVA

 
Vista:

Binario Decimal JAVA

Publicado por BOOM (5 intervenciones) el 16/04/2020 04:39:18
Buenos dias quien se puede asesorar en realizar un algoritmo donde se inserte un numero decimal o binario y que este lo convierta en su correspondiente, si se escribe en binario arroje el decimal o si se escribe el decimal arroje el decimal, todo esto en un solo algoritmo.
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

Binario Decimal JAVA

Publicado por Rodrigo (623 intervenciones) el 16/04/2020 07:04:23
Parece incompleta la descripcion. Se presta para ambiguedades.

Explico:
Un binario es decimal. Como puedes saber si un numero binario NO es decimal?
Por ejemplo: 10. Se refiere al numero binario 2 o al numero 10?
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Binario Decimal JAVA

Publicado por Kabuto (1381 intervenciones) el 16/04/2020 11:25:41
Exacto.
No hay forma de distinguir si valores como 10, 11, 101,1000 ... están en base 2 (binario) o en base 10, porque se escriben exactamente igual aunque su valor sea distinto según la base.

Es el usuario quien tiene que dar esa información.
Se le puede ofrecer escoger el tipo de conversión que quiere realizar como hice en este otro tema
Así ya se puede conocer la base del número que va a introducir.

Otra posible forma es acordar con el usuario algún tipo de regla, por ejemplo añadir una letra al final del número para distinguir la base:
- 100b -> sería binario
- 100d -> sería decimal

Esto hace que se tengan que leer los valores como datos String, separar cifras de la letra, convertir caracteres a números...
Es un poco más laborioso
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

Binario Decimal JAVA

Publicado por Rodrigo (623 intervenciones) el 16/04/2020 15:48:45
Otra opcion es que ignores completamente la ambiguedad que se produce con los numeros que tienen solo 1s.y 0s y hagas esta logica:

1
2
3
4
5
6
7
Si alguno de los digitos no es 1 o 0 {
    // es un numero en base 10
    // convertirlo a base 2
} sino {
   // es un numero en base 2
   // convertirlo a base 10
}

y otra opcion es que dada la ambiguedad, hagas 2 conversiones en ese caso:

1
2
3
4
5
6
7
8
Si alguno de los digitos no es 1 o 0 {
    // es un numero en base 10
    // convertirlo a base 2
} sino {
   // es un numero en base 2 y base 10
   // convertirlo a base 10, suponiendo que esta en base 2
   // convertirlo en base 2 tambien, suponiendo que esta en base 10
}
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

Binario Decimal JAVA

Publicado por BOOM (5 intervenciones) el 18/04/2020 17:04:36
Quien me podria asesorar, tengo el siguiente algoritmo pero al tratar de convertir un numero entero de 7 o mas cifras me aparece el siguiente error, como puedo arreglar el error para que me convierta los numeros de mas de 7 cifras a binario

Ingresa un numero:
1234567
El numero 1234567 a binario es: 100101101011010000111
Exception in thread "main" java.lang.NumberFormatException: For input string: "100101101011010000111"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at Third.Converter.main(Converter.java:25)

El algoritmo es el siguiente:

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
{
	private static Scanner teclado;
 
	public static void main(String[] args)
	{
		teclado = new Scanner(System.in);
		System.out.println("Ingresa un numero:");
 
		long decimal = teclado.nextInt();
		long aux = decimal;
		String binario = "";
 
		while (aux > 0)
		{
			binario = aux % 2 + binario;
			aux = aux / 2;
		}
		System.out.println("El numero " + decimal + " a binario es: " + binario);
 
		long numbinario = Long.parseLong(binario);
		long numdecimal = 0;
		int count = 0;
		long auxdecimal;
 
		while (numbinario > 0)
		{
			auxdecimal = numbinario % 2;
			numdecimal = numdecimal + auxdecimal * count;
			numbinario = numbinario / 10;
			count = count * 2;
		}
		System.out.println("El numero binario " + binario + " a decimal es: " + numdecimal);
	}
}
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

Binario Decimal JAVA

Publicado por Rodrigo (623 intervenciones) el 18/04/2020 17:18:32
binario es un string, podrias trabajarlo como tal en vez de tratar de convertirlo a long,
tambien existe la clase BigInteger.
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

Binario Decimal JAVA

Publicado por BOOM (5 intervenciones) el 18/04/2020 19:57:00
En que parte haria el cambio o como quedaria, ya que al realizarlo me copia el numero binario pero me retorna 0 y no el numeor ingresado, hasta ahora estoy aprendiendo a programar en java no es que sea un experto en algunos terminos
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

Binario Decimal JAVA

Publicado por Rodrigo (623 intervenciones) el 18/04/2020 23:08:22
Sugiero que incluyas el codigo, es dificil saber lo que hiciste o dejaste de hacer con la explicacion del resultado solamente.
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