有谁能告诉我为什么我不能声明这样的数组?在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字面值,无论后续的转换或处于长[]初始值设定项中。 –