嘿我有String
包含0xff906000
。当然,它太大而不能存储为dec int。相反,我希望int看起来与0xff906000
完全相同 - 保持十六进制格式。
我可以声明int foo = 0xffffffff;
(不超过int范围),因此必须有一种方法可以将String
设置为我的int,同时保留确切的数字。
我需要setBackgroundColor(int);
的全部内容。我可以输入十进制int的值,但我想保留aRGB结构,这只能通过十六进制图示(0xaaRRGGBB)。
Integer.parseInt
抛出java.lang.NumberFormatException: Invalid int: "0xff906000"
Integer.decode
完全'转换超出int
还有其他可能性吗?
答案 0 :(得分:2)
计算机将以二进制形式存储该号码。不是十六进制,而不是十进制。并且int
无法保持超出其范围的值 - 因为您需要long
。出于显示目的,您可以致电Long.toHexString(long)
,如
long foo = 0xff90600000L;
System.out.println("0x" + Long.toHexString(foo));
输出
0xff90600000
修改要获取更新后的值,请使用Integer.toHexString(int)
int foo = 0xff906000;
System.out.println("0x" + Integer.toHexString(foo));
输出
0xff906000
答案 1 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
对于一个int(4个字节并签名)来说它太大了,所以试试这个:
Long.parseLong("0xff906000", 16);