2014-10-29 101 views
1

长[] RC1 = {0x0000000000000000,0x13198a2e03707344,0xa4093822299f31d0,0x082efa98ec4e6c89,0x452821e638d01377,0xbe5466cf34e90c6c,0x7ef84f78fd955cb1,0x85840851f1ac43aa,0xc882d32f25323c54,0x64a51195e0e3610d,0xd3b5a399ca0c2399,0xc0ac29b7c97c50dd};在Java十六进制数据类型

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

回答

6

你必须指出那些是long(而不是int)常量。您可以通过添加字母lL的后缀这样做,就像

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

JLS-3.10.1

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

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