刚开始学习编程,你能解释一下它们之间的区别吗
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
。
前导0使编译器将数字解析为八进制数(基数8)。01200八进制的十进制值是640。
前导零意味着八进制文字;所以01200是以8为底,十进制是640。
从本质上讲,这是对八进制文字更普遍的旧时代的致敬。尽管现在它更有可能分散注意力并导致混乱。有一些运动提出了八进制文字更深思熟虑的0o
表示法。