Código de Java - De binario a decimal

Imágen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

De binario a decimalgráfica de visualizaciones


Java

Publicado el 30 de Mayo del 2020 por Kevin
2.547 visualizaciones desde el 30 de Mayo del 2020
Este código nos ayudara a hacer la conversión de binario a decimal de una manera simple y detallada.

Requerimientos

no se requiere absolutamente de nada, puesto que es código para principiantes.

1.0
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 30 de Mayo del 2020gráfica de visualizaciones de la versión: 1.0
2.548 visualizaciones desde el 30 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Es una versión simple pero detallada de el algoritmo resuelto de pasar de un binario de cualquier longitud a decimal.

Se resolvió con joptionPane de la manera mas simple para aquellos programadores que recién empiezan en esta área para facilitar su comprensión.

espero que les sirva.
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
43
44
45
46
47
48
49
50
51
52
53
import javax.swing.JOptionPane;
public class DeBinarioADecimal{
    public static void main(String[] args) {
 
        //mensaje de bienvenida
        JOptionPane.showMessageDialog(null, "Bienvenido al cconversor  binario");
 
        //Se declaran los datos
        int  cantidadBits;//este tendra la informacion de la cantidad de bits del binario
        cantidadBits = Integer.parseInt(JOptionPane.showInputDialog("Por favor ingrese el numero  de bits que desea convertir"));
        //se hace el parseo inmediatamente a int
 
 
 
        //validacion de entrada, debe ser mayor a 0 pues debe ser un numero entero
        while(cantidadBits<=0){
            cantidadBits = Integer.parseInt(JOptionPane.showInputDialog("Por favor ingrese el numero  de bits que desea convertir"
                    + "Recuerde que debe ser mayor a cero y un  numero entero"));
            //se hace el parseo inmediatamente a int
        }//fin validacion 1
 
        int vector[]= new int[cantidadBits];//se declara el vector que contendra el numero binario con la longitud que ya se declaro anteriormente
        String visualiza="";//se declara para posteriormente rellenarlo con la informacion del vector.
 
        for (int i = 0; i < cantidadBits; i++) {//for que llenara el vector uno a uno
            int valor;//el valor entre 1 y 0 que contendra la posicion del vector en i
            int solicita=cantidadBits;//se declara para dar manejo a la cantidad en funcion del recorrido del for
 
            valor = Integer.parseInt(JOptionPane.showInputDialog("ingrese el valor de la potencia " + solicita));
            //se solicita el valorque contendra el vector en la posicion de i y se hace el parseo inmediatamente
            while(valor != 0 && valor != 1){//validacion  de entrada, pues solo se aceptan 1 y 0 en binario
                    valor = Integer.parseInt(JOptionPane.showInputDialog("ingrese el valor de la potencia " + solicita
                    + "\nRecuerde que debe ser el numero 1 o el numero 0"));// se solicita con el error y se hace el parseo para su posterior validacion
            }//fin validacion 2
            vector[i]=valor;//si el valor es correcto, se asigna este a la posicion del vector en i
            solicita--;//se disminuye para hacer la muestra correcta del vector en el joptionPane
        }//fin for que rellena el vector
 
        //ya con el vector lleno procedemos a recorrerlo para validar que posiciones contienen 1 para hacer la operacion
        int aux;//este contendra la informacion cuando dentro del vector se encuentre el 1
        int suma=0;//este contendra la operacion de la potencia y la sumara a su vez
 
        for (int i = 0; i < cantidadBits; i++) {//for para recorrer el vector en busca de 1
            visualiza+= vector[i];//este ayudara  para su correcta  impresion luego
            if (vector[i] == 1 ) {//se compara el contenido de cada posicion del vector
                aux= (int)Math.pow(2,(i+1));//al hallar 1 se hace la operacion con el subindice del vector
                suma+=aux;//se suma la operacion con lo que contiene la variable suma
            }//fin if que hace la suma
        }//fin for que recorre el vector en  busca de los resultados
 
        JOptionPane.showMessageDialog(null, "El binario: " + visualiza + ", en decimales es: " +  suma);
    }//fin main
}//fin public class



Comentarios sobre la versión: 1.0 (3)

Imágen de perfil
30 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Imágen de perfil
30 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
realmente no lo leí, ni lo analice, pero se me hace muy pero muy largo para convertir bin a decimal. por que don ciclos solamente.

los bina de menor a mayor es 1 2 4 8 16...... 2048...etc
y eso es lo que vale.

lo escribo ahorita.

String string=lee_Teclado.obtiene_Datos("s");
int pos=1,size=string.length;
long resultado=0;
for(int i=size-1;i>=0;i--){
char ch = string.charAt(i);
if(ch=='0' || ch='1'){
if(ch=='1'){
res+=pos;
}
}else{
System.out.println("Error garrafal");
System.exit(99);
}
pos *= 2;
}
Responder
Imágen de perfil
31 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
me falto el print.

este el correcto, me mando un error de java _java_options: y me desepere y lo mande pero este es el buen
public static void main (String [] args){
String string=lee_Teclado.obtiene_Datos("s");
int pos=1,size=string.length();
long res=0;
for(int i=size-1;i>=0;i--){
char ch = string.charAt(i);
if(ch=='0' || ch=='1'){
if(ch=='1'){
res+=pos;
}
}else{
System.out.println("Error garrafal");
System.exit(99);
}
pos *= 2;
}
System.out.println(res);
}
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6243