是什么造成了这种差异通过在左侧增加零

时间:2016-04-05 06:56:29

标签: java

刚开始学习编程可以解释它们之间的差异

public class tst {

    public static void main(String args[]){
        int mk=1200;
        System.out.println(mk);
    }

}

public class tst {

    public static void main(String args[]){
        int mk=01200;
        System.out.println(mk);
    }
}

第一个给出了结果1200,而第二个给了640

2 个答案:

答案 0 :(得分:4)

前导0使编译器将数字解析为八进制数(基数8)。 01200八进制的十进制值是640。

答案 1 :(得分:2)

前导零表示八进制文字;所以01200是基数8,十进制,是640。

基本上,这是为了向旧时代致敬,其中八进制文字更为常见。这些天虽然它更容易分散注意力并造成混乱。有些动作可以为八进制文字提出更谨慎的0o符号。