为什么09的整数“太大”?

但是,如果用前导零检查Integer,则会发现问题是在jdk7发行之前进行的,因此其研究工作量较小。但是在jdk7中,对整数进行了一些更改和添加。以下是有关jdk7的最新答案。

我有一个代码:

class Test{

public static void main(String[] args){

int x=09;

System.out.println(x);

}

}

编译时出现错误:整数太大:09

为什么这样做呢?

同样,如果我将代码更改为:

class Test{

public static void main(String[] args){

int x=012;

System.out.println(x);

}

}

现在输出是10

为什么给输出10而不是12?

回答:

开头的数字0被认为是八 - 9不是一个八进制数字(但(传统)0-7)。


十六进制文字开头0x,例如0xA


直到Java 6为止,二进制文件都没有文字符号,您必须使用类似

int a = Integer.parseInt("1011011", 2);

第二个参数指定所需的基数。


Java7现在具有二进制文字。

在Java SE 7中,整数类型(字节,短型,整型和长型)也可以使用二进制数字系统表示。要指定二进制文字,请在数字前添加前缀0b0B

以上是 为什么09的整数“太大”? 的全部内容, 来源链接: utcz.com/qa/407278.html

回到顶部