De binario a decimal
Java
Publicado el 30 de Mayo del 2020 por Kevin
2.686 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.
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
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.