有誰能告訴我爲什麼我不能聲明這樣的數組?在java中聲明long []數組
long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
174251, 698027, 2794155, 11180715, 44731051, 178940587,
715795115, 2863245995, 11453115051, 45812722347, 183251413675,
733006703275, 2932028910251, 11728119835307, 46912487729835,
187649967696555, 750599904340651, 3002399684471467};
編譯器說int類型的文字超出範圍。我也試圖將其轉換爲長這樣
long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
174251, 698027, 2794155, 11180715, 44731051, 178940587,
715795115, (long)2863245995, (long)11453115051, (long)45812722347, etc ...
,但什麼都沒有改變也嘗試過像成才這樣Long.valueOf(x)
其中x爲數字whitch編譯器有問題。
任何想法?
預先感謝
將L添加到您的數字中。 I.e:2863245995L等。 –
謝謝你的作品完美。 – Yetti
關鍵原則是Java表達式的類型和值獨立於它如何使用。 11453115051是一個超大的int字面值,無論後續的轉換或處於長[]初始值設定項中。 –