问下这问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:52:19
public class Demo2{

public static void main(String args[]){

int c=090;
System.out.print(c);
}

}
为什么编译时候说过大的整数?
我问的是为什么,没要求改,我想知道为什么?

java中以0开头的是八进制的数.

int c=090;程序会认为是要将一个八进制数赋给c

但是既然是八进制数.那么八进制数的构成就应该是以0-7之间的数..

因此在这里9的出现就是错误的

在Eclipse中会提示
The literal Octal 090 (digit 9) of type int is out of range

意思就是八进制数090中的数字9超出了八进制能接受的数字范围..(超出了0-7的范围)

int c=090;你这样写它是按8进制来计算的,所以08、09不认了,int c=070 060这样就可以

没有这么赋值的。