当零添加到左边时,为什么整数会改变它们的值?

时间:2017-01-22 11:45:46

标签: java int

我只想尝试一些整数并将值“0013”分配给整数a。当我将值打印到输出控制台时,我得到“11”。是什么导致这个?为什么我没有得到13?

 int b = 0013;
 System.out.println(b);

2 个答案:

答案 0 :(得分:5)

领先的零均值八进制。就像前导0x均值十六进制

一样

答案 1 :(得分:2)

Java 意外地自动将您的号码作为八进制数。与十六进制表示法不同,数字前面带有0x,八进制表示单个零。编译器可能已经将您的编号转换为八进制格式。

尝试使用13代替0013