me encontré con el siguiente hexagonal camino de conversión binaria:Convertir cadena hexadecimal (hex) a una cadena binaria
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
Si bien este enfoque funciona para los números hexadecimales pequeños, un número hexadecimal como la siguiente
A14AA1DBDB818F9759
lanza una NumberFormatException.
lo tanto, escribió el siguiente método que parece funcionar:
private String hexToBin(String hex){
String bin = "";
String binFragment = "";
int iHex;
hex = hex.trim();
hex = hex.replaceFirst("0x", "");
for(int i = 0; i < hex.length(); i++){
iHex = Integer.parseInt(""+hex.charAt(i),16);
binFragment = Integer.toBinaryString(iHex);
while(binFragment.length() < 4){
binFragment = "0" + binFragment;
}
bin += binFragment;
}
return bin;
}
El método anterior básicamente toma cada carácter en la cadena hexadecimal y lo convierte en sus equivalentes binarios con ceros si es necesario y luego lo une al valor de retorno. ¿Es esta una forma adecuada de realizar una conversión? ¿O estoy pasando por alto algo que puede hacer que mi enfoque fracase?
Gracias de antemano por cualquier ayuda.
¿Sería mucho no trabajar por lo que están queriendo? También tiene ToBinaryString(). Eso sería apoyar ... rango va de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. – Jared
si eso hace lo que le gustaría, hágamelo saber para que pueda publicar la respuesta por favor. – Jared
Tu código se ve bien para mí. También puede buscar en el siguiente enlace: http://java2everyone.blogspot.in/2009/04/java-hexadecimal-to-binary.html?m=1 –