Java中十六进制的数据类型

Ano*_*non 1 java hex type-conversion

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

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

Ell*_*sch 6

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

long[] RC1 = { 0x0000000000000000L, 0x13198a2e03707344L,
            0xa4093822299f31d0L, 0x082efa98ec4e6c89L, 0x452821e638d01377L,
            0xbe5466cf34e90c6cL, 0x7ef84f78fd955cb1L, 0x85840851f1ac43aaL,
            0xc882d32f25323c54L, 0x64a51195e0e3610dL, 0xd3b5a399ca0c2399L,
            0xc0ac29b7c97c50ddL };
Run Code Online (Sandbox Code Playgroud)

来自JLS-3.10.1

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

后缀L是优选的,因为字母l(ell)通常难以与数字1(一)区分开.