Я нашел следующий путь hex к двоичному преобразованию:
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
Хотя этот подход работает для маленьких шестнадцатеричных чисел, шестнадцатеричное число, такое как следующее
A14AA1DBDB818F9759
Выбрасывает a NumberFormatException.
Поэтому я написал следующий метод, который, кажется, работает:
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;
}
Вышеупомянутый метод в основном принимает каждый символ в строке Hex и преобразует его в его двоичные эквивалентные прокладки с нулями, если необходимо, а затем присоединяет его к возвращаемому значению. Является ли это правильным способом выполнения преобразования? Или я пропускаю что-то, что может привести к неудаче моего подхода?
Заранее благодарим за любую помощь.