可能是重复问题:
09不被识别,而9可以被识别
我有一个疑问,当我声明以下内容时:
public static final long __VERSIONCODE = 0L;
public static final long __VERSIONCODE = 9L;
那会起作用,但每当我尝试这样做时:
public static final long __VERSIONCODE = 09L;
public static final long __VERSIONCODE = 08235L;
我在eclipse中遇到了一个错误:
"类型为long的09L字面量超出范围。"
于是我认为这是因为它以零开头。
但后来我尝试了第二个数字更低的八:
public static final long __VERSIONCODE = 07235L;
这给我带来了没有错误的结果。
接着:
public static final long __VERSIONCODE = 07239L;
我也遇到了错误。
所以我真的不明白哪些值可以分配给long,哪些不能。为什么会出现这些错误?(实际上,我只是好奇,我也可以使用字符串来表示我的版本代码)。
另外,我忘了提到,如果使用double而不是long,结果完全相同。
07235 < 7235
。 - Joop Eggenint value = 0X1234;
时,编译器会接受它。(;)) - Hot Licks