2014-10-29 103 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(一)區分開來。