当前位置: 首页 > 面试题库 >

Java负整数转换为十六进制并返回失败

淳于嘉树
2023-03-14
问题内容
public class Main3 {
    public static void main(String[] args) {
        Integer min = Integer.MIN_VALUE;
        String minHex = Integer.toHexString(Integer.MIN_VALUE);

        System.out.println(min + " " + minHex);
        System.out.println(Integer.parseInt(minHex, 16));
    }
}

-2147483648 80000000
Exception in thread "main" java.lang.NumberFormatException: For input string: "80000000"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:459)
    at Main3.main(Main3.java:7)

这是怎么回事?


问题答案:

据记录,Integer.toHexString该字符串以无符号值形式返回整数的字符串表示形式-
同时使用Integer.parseInt带符号的int值。如果Integer.toString(value, 16)改用,您将得到想要的东西。



 类似资料:
  • 问题内容: 我正在尝试将一个数字从一个整数转换为另一个整数,如果以十六进制打印,它将看起来与原始整数相同。 例如: 将20转换为32(即0x20) 将54转换为84(即0x54) 问题答案: 即,将原始数字视为十六进制,然后将其转换为十进制。

  • 我有十六进制字符串,例如“0x103E”,我想将其转换为整数。意思是to我尝试了但它给出了数字格式异常。我如何实现这一点?

  • 问题内容: 我使用python 2.6 正值和负值相同吗? 当我使用calc时,值为。 问题答案: Python的整数可以任意增大。为了按您希望的方式计算原始二进制补码,您需要指定所需的位宽。您的示例以64位二进制补码显示,但也可能是32位或128位,因此开始时会产生不同数量的。 不这样做。我建议以下方法: 打印输出:

  • 问题内容: 我写了一些代码将十六进制显示字符串转换为十进制整数。但是,当输入类似100a或625b(带有字母的东西)时,我得到了这样的错误: java.lang.NumberFormatException:对于输入字符串:java.lang.Integer.parseInt(未知源)处的java.lang.NumberFormatException.forInputString(未知源)处为“ 1

  • 我正在写一个Rust程序,读取I2C总线并保存数据。当我读取I2C总线时,我会得到十六进制值,比如,,等等。 现在,我只能将其作为字符串处理并按原样保存。有没有办法把它解析成一个整数?它有内置的功能吗?

  • 问题内容: 如上面的标题。我想从一个十六进制数字 我想转换为。 问题答案: