Skip to content

Instantly share code, notes, and snippets.

@parzibyte

parzibyte/Probar conversión.java Secret

Last active Mar 11, 2019
Embed
What would you like to do?
/**
* 2 maneras de convertir números binarios a decimales en Java
*
* @author parzibyte
*/
class Main {
public static void main(String[] args) {
String[] binarios = { "000000", // 0
"000001", // 1
"10", // 2
"101", // 5
"1111", // 15
"1111111111", // 1023
};
for (String binario : binarios) {
System.out.println("Convirtiendo binario a entero el número " + binario);
System.out.println("Manual: " + convertirBinarioADecimalManual(binario));
System.out.println("Usando funciones: " + convertirBinarioADecimal(binario));
}
}
public static long convertirBinarioADecimalManual(String binario) {
// A este número le vamos a sumar cada valor binario
long decimal = 0;
int posicion = 0;
// Recorrer la cadena...
for (int x = binario.length() - 1; x >= 0; x--) {
// Saber si es 1 o 0; primero asumimos que es 1 y abajo comprobamos
short digito = 1;
if (binario.charAt(x) == '0') {
digito = 0;
}
/*
* Se multiplica el dígito por 2 elevado a la potencia según la posición;
* comenzando en 0, luego 1 y así sucesivamente
*/
double multiplicador = Math.pow(2, posicion);
decimal += digito * multiplicador;
posicion++;
}
return decimal;
}
public static long convertirBinarioADecimal(String binario) {
return Long.parseLong(binario, 2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment