Непоследовательное получение NumberFormatException при попытке преобразовать двоичный код в шестнадцатеричный

Если использовать переменную bin1, она не будет конвертироваться, однако, если я заменю параметр на bin2, это, похоже, будет работать

Я пытался использовать long вместо int. Это все то же самое.

public class Test{
    public static void main(String[] args) {
        String bin1 = "11011100000000010001000000000000";
        String bin2 = "01100100001000010001000000000000";

        int dec = Integer.parseInt(bin1, 2);
        String hex = Integer.toString(dec, 16);

        System.out.println(hex);
    }
}

1 ответ

Решение

Это на самом деле хорошо работает с длинными.

public class Test{
    public static void main(String[] args) {
        String bin1 = "11011100000000010001000000000000";
        String bin2 = "01100100001000010001000000000000";

        long dec = Long.parseLong(bin1, 2);
        String hex = Long.toString(dec, 16);

        System.out.println(hex);
    }
}

Результат:

dc011000

Ваш номер слишком велик для int,

Другие вопросы по тегам