java - 尝试将二进制转换为十六进制时不一致地获得 NumberFormatException

标签 java binary hex data-conversion number-systems

如果使用变量 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);
    }
}

最佳答案

它实际上适用于多头。

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 来说太大了。

关于java - 尝试将二进制转换为十六进制时不一致地获得 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727983/

相关文章:

c++ - 修复了 g++ 4.9.1 奇怪的 "%a"格式行为?

java - 为什么相加解析的 double 比在 Java 中使用 BigDecimal 慢?

c++ - 在C++中序列化二进制数据的正确方法

c - “Invalid operands to binary expressions” 错误

C 字符串到字节或二进制(8 位)

c++ - Qt 将负十六进制字符串转换为有符号整数

java - Intellij IDEA Tomcat git 克隆 Web 应用程序

java - Postgres 中多次插入序列失败

java - (如何操作)Poker Positioning using ENUM

python - python2/3 中 int 列表或数组的十六进制字符串,无需测试 python 版本且无需循环