Преобразование шестнадцатеричной строки в 32-битную двоичную строку - PullRequest
0 голосов
/ 20 ноября 2011

Как я могу преобразовать шестнадцатеричную строку в 32-битную двоичную строку?Я сделал

String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));

Чтобы получить двоичную строку, но мне нужно заполнить ее нулями, чтобы обеспечить ее 32-битные значения, как я могу это сделать, желательно с Formatter?

1 Ответ

0 голосов
/ 20 ноября 2011
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16)); 
String.format("%032", new BigInteger(binAddr));

Идея здесь состоит в том, чтобы временно разобрать строку обратно в десятичное число (такое, которое просто состоит из всех 1 и 0), а затем использовать String.format().

Обратите внимание, что вы в основном должны использовать BigInteger, потому что двоичные строки быстро переполняются Integer и Long, что приводит к возникновению исключений NumberFormatExceptions, если вы пытаетесь использовать Integer.fromString() или Long.fromString().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...