gpt4 book ai didi

java - 为什么09 "too large"是一个整数?

转载 作者:IT老高 更新时间:2023-10-28 21:20:34 45 4
gpt4 key购买 nike

他们认为是:

Possible Duplicate:
Integer with leading zeroes

但是如果你检查 Integer with leading zeroes那么你会发现这个问题是在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 开头的数字被视为 octal – 并且 9 不是八进制数字(但(通常)0-7 是)。


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


在 Java 6 之前,没有用于二进制和你将不得不使用类似的东西

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

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


Java 7 现在有 binary literals .

In Java SE 7, the integral types (byte, short, int, and long) can also be expressed using the binary number system. To specify a binary literal, add the prefix 0b or 0B to the number.

关于java - 为什么09 "too large"是一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935345/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com