gpt4 book ai didi

java - 在 Java 中从十六进制转换为整数

转载 作者:行者123 更新时间:2023-11-29 09:36:51 36 4
gpt4 key购买 nike

由于以下代码行,我收到错误消息:

int x = color(Integer.parseInt("ffffffde",16));

我觉得可能是因为它是一个负值

关于为什么或如何或如何解决它的任何想法?

编辑:

抱歉,没有包含实际错误。这是:

Exception in thread "Animation Thread" java.lang.NumberFormatException: For input string: "ffffffde" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source)

编辑 2:

值(“ffffffde”)由以下代码创建:

Integer.toHexString(int_val);

编辑 3:原来这是一个已知错误 (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4215269)虽然您可以将整数转换为十六进制字符串,但如果它们是负数,则不能将它们转换回来!!

最佳答案

ffffffde 大于整数最大值

Java int is 32 bit signed type ranges from –2,147,483,648 to 2,147,483,647.

ffffffde = 4,294,967,262 

编辑

您使用 Integer.toHexString(int_val) 将 int 转换为十六进制字符串。来自该方法的文档:

Returns a string representation of the integer argument as an unsigned integer in base 16.

但是 int 是一个signed 类型。

使用

int value = new BigInteger("ffffffde", 16).intValue();

将其取回为负值。

关于java - 在 Java 中从十六进制转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10681312/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com