Convertir en Java Decimal a Binario y Binario a Decimal

En este ejemplo veremos como convertir un numero en Java decimal dado a binario y viceversa convertir un numero Binario a decimal simplemente usando instrucciones y validaciones.

public class ConvertirDecimalABinario { public static void main(String arg[]){ long numeroDEcimal=134000;//numero que se va a conertir a binario long aux=numeroDEcimal;// sele asigna el numero ecimal a la variable auxiliar /*Creamos una varible String para guardar el numero Binario*/ String numeroBinario=new String(); /*Ciclo que va preguntando hasta que aux sea mayor a cero*/ while(aux>0){ numeroBinario=aux%2+numeroBinario;/* Dividimos y tomamos el residuo y lo concatenamos * con la cadena NumeroBinario */ aux/=2;//Vamos disminuyendo la variable aux dividiendola entre 2 } System.out.println(numeroBinario);// Imprimimos el numero Binario /*Ahora vamos a pasar de binario a decimal Tomemos el mismo numero que nos dio como resultado de la conversion de Decimal a Binario.*/ //Hacemos el Castin para convertir la cadena a Entero long numeroBinarioConvertir=Long.parseLong(numeroBinario); long salidaDecimal=0; long contador=1; long auxDecimal; while(numeroBinarioConvertir>0){ /*Sacamos el residuo de la operacion el cual multiplacaremos por la variable auxDecimal */ auxDecimal= numeroBinarioConvertir%2; //Vamos sumando y guardando en la variable salidaDecimal la operacion salidaDecimal=salidaDecimal+auxDecimal*contador; //Dividimo estre diez numeroBinarioConvertir/=10; contador=contador*2; } System.out.println(salidaDecimal); } } /*Salida 100000101101110000 134000 */

5 comentarios:

Anónimo dijo...

Muy bueno Gracias!

Unknown dijo...

Muy buen aporte, aunque la funcion de Binario a Decimal se puede reducir en 2 lineas

Programación al extremo dijo...

y como quedaría el código

Unknown dijo...

bueno reduje 2 lineas eliminando la variable auxDecimal de esta manera:
public int iBinariotoDecimal(String stNumeroBinario){
int iNumeroBinario = Integer.parseInt(stNumeroBinario);
int iNumeroDecimal = 0;
int iCount = 1;
while(iNumeroBinario > 0){
iNumeroDecimal += (iNumeroBinario%2) * iCount;
iNumeroBinario/=10;
iCount *= 2;
}
return iNumeroDecimal;
}
aun busco una manera de hacerlo un poco mas recursivo

Programación al extremo dijo...

Excelente amigo, claro estoy declarando una variable que se podría quitar

Mi primer Reporte en Ireport usando Java , Maven y NetBeans Generar PDF Versión WEB

Mi primer Reporte en Ireport usando Java , Maven y NetBeans Generar PDF Versión WEB Estructura del proyecto Listado de rutas de car...