1
public class Example {

    public static void main(String args[]) {
        int a = 0153;
        int b=a;
        System.out.println(""+b);
    }
}

有人可以解释为什么它会打印107而不是打印153吗?

4

3 回答 3

2

107的八进制是0153

在 Java 中,您可以通过添加前导零来创建八进制文字,如下所示: int a = 0755; 当心!指定八进制文字是很常见的

于 2012-04-10T19:45:01.623 回答
0

因为以 开头的数字0在 Java 中被视为八进制值。0153八进制是107十进制。

于 2012-04-10T19:45:09.837 回答
0

你写为八进制,打印默认为十进制。

         Input                            Prints (decimal)

Decimal   153                             153
         ^
         No leading zero (digits 0-9) 

Octal    0153                             107
         ^
         leading zero (digits 0-7)

Hex      0x153                            339
         ^^
         leading 0x (digits 0-F)
于 2012-04-10T19:55:14.553 回答