Java中十六进制的数据类型

时间:2014-10-29 03:46:08

标签: java hex type-conversion

长[] RC1 = {0x0000000000000000,0x13198a2e03707344,0xa4093822299f31d0,0x082efa98ec4e6c89,0x452821e638d01377,0xbe5466cf34e90c6c,0x7ef84f78fd955cb1,0x85840851f1ac43aa,0xc882d32f25323c54,0x64a51195e0e3610d,0xd3b5a399ca0c2399,0xc0ac29b7c97c50dd};

Java中不支持此代码,因为它显示十六进制的值太大。我已将值更改为十进制,但仍然很大。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:6)

您必须指出那些是long(而不是int)常量。您可以通过添加字母lL的后缀来完成此操作,例如

long[] RC1 = { 0x0000000000000000L, 0x13198a2e03707344L,
            0xa4093822299f31d0L, 0x082efa98ec4e6c89L, 0x452821e638d01377L,
            0xbe5466cf34e90c6cL, 0x7ef84f78fd955cb1L, 0x85840851f1ac43aaL,
            0xc882d32f25323c54L, 0x64a51195e0e3610dL, 0xd3b5a399ca0c2399L,
            0xc0ac29b7c97c50ddL };

来自JLS-3.10.1

  

如果整数文字后缀为ASCII字母L或l(ell),则其类型为long;否则它是int§4.2.1)类型。

     

后缀L是首选,因为字母l(ell)通常很难与数字1(一)区分开来。