znalazłem następujący sposób hex do konwersji binarnej:przekonwertować ciąg szesnastkowy (hex) na ciąg binarny
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
Choć takie podejście działa dla małych liczb HEX, numer szesnastkowy takie jak następujące
A14AA1DBDB818F9759
rzuca NumberFormatException.
I dlatego napisał następujący sposób, który wydaje się działać:
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;
}
Powyższa metoda w zasadzie przyjmuje każdy znak w ciągu szesnastkowym i konwertuje go na jego binarne równoważne pola z zerami, jeśli to konieczne, a następnie dołącza je do wartości zwracanej. Czy jest to właściwy sposób przeprowadzenia konwersji? Czy mogę przeoczyć coś, co może spowodować, że moje podejście się nie powiedzie?
Z góry dziękujemy za wszelką pomoc.
Czy długo nie działają za to, co chcesz? Ma również ToBinaryString(). To by wsparło ... Zakresy od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807. – Jared
jeśli to, co chcesz, daj mi znać, więc mogę wysłać jako odpowiedź proszę. – Jared
Twój kod wygląda dobrze. Możesz również spojrzeć na następujący link: http://java2everyone.blogspot.in/2009/04/java-hexadecimal-to-binary.html?m=1 –