java十六进制字符串到int的转换工作不正常
我有一个十六进制数(一种颜色)存储在一个字符串中,如下所示:“ff62e6b8”。 我需要将其转换回整数,以便再次将其用作颜色值。 我尝试了以下方法:
Int i = Integer.parseInt("ff62e6b8", 16);
Int i = Integer.valueOf("ff62e6b8", 16);
Int i = Integer.decode("ff62e6b8");
但所有这些方法都会引发例外。我是不是遗漏了什么
你可以在下面搜索框中键入要查询的问题!
我有一个十六进制数(一种颜色)存储在一个字符串中,如下所示:“ff62e6b8”。 我需要将其转换回整数,以便再次将其用作颜色值。 我尝试了以下方法:
Int i = Integer.parseInt("ff62e6b8", 16);
Int i = Integer.valueOf("ff62e6b8", 16);
Int i = Integer.decode("ff62e6b8");
但所有这些方法都会引发例外。我是不是遗漏了什么
# 1 楼答案
试试这个:
示例:
这样你就可以得到
colorVal = -10295624
如果您想从colorVal生成hexColor代码,请使用以下命令:
这样你就可以得到
hexColor = #62E6B8
谢谢
# 2 楼答案
FF62E6B8是十进制的4284671672。把它放在
int
里简直太大了。在int
中,可以存储与范围<-2^31 - 1 ; 2^31 - 1>
匹配的值。尝试改用long
:# 3 楼答案
第一个是好的
但是ff62e6b8超过了int(32位有符号)的大小,这就是引发异常的原因
我应该做这项工作
# 4 楼答案
这是正确的转换