Java 默认初始化为八进制| | int a=0->;八进制

Java 默认初始化为八进制| | int a=0->;八进制,java,Java,我想知道,为什么java将八进制的语法设置为数字前加0 指: int a = 011; System.out.println("Output: " + a); //Output: 9 因此,这也是合乎逻辑的,也必须作为八进制来处理: int b = 0; System.out.println("Output: " + b); //Output: 0 为什么java是这样工作的?int的默认初始化为0。这意味着,系统总是将其计算为八进制,而不是二进制值。或者我是一个错误的方法?在你

我想知道,为什么java将八进制的语法设置为数字前加0

指:

int a = 011;
System.out.println("Output: " + a);    //Output: 9
因此,这也是合乎逻辑的,也必须作为八进制来处理:

int b = 0;
System.out.println("Output: " + b);    //Output: 0

为什么java是这样工作的?int的默认初始化为0。这意味着,系统总是将其计算为八进制,而不是二进制值。或者我是一个错误的方法?

在你的第二个例子中,
0
是十进制而不是八进制(并不是说两者都不相等)

这是一个八进制
0

int b = 00;
System.out.println("Output: " + b);    // Output: 0

不,在第二个示例中,0是一个十进制-cf

八进制数字由一个ASCII数字0后跟一个或多个带有下划线的ASCII数字0到7组成,可以表示正整数、零整数或负整数


所以八进制中的
0
将表示为
inta=00

啊。。。这似乎是有道理的谢谢大家,谢谢大家。我没有想到00的可能性。:)如果你想一想将0解释为八进制、十进制、二进制或其他任何形式会有什么不同,你已经回答了你的问题。关于Java为什么使用前面的0,我在这里读到了一个非常有说服力的答案,基本上是“C就是这样做的,B就是这样做的”,尽管我现在找不到答案。@Radiodef可能。