我写了一个非常简单的Java程序:
class test {
public static void main (String args[])
{
int i = 23;
int j = i/10;
System.out.println ("Value of i: " +i);
System.out.println ("Value of j: " +j);
}
}
输出符合预期 - i = 23
和j = 2
现在,我不断更改程序中i
的值。产出开始发生变化。
i = 02
的值和输出变为 - i = 2
和j = 0
i = 023
的值和输出变为 - i = 19
和j = 1
现在我很困惑。当我在程序中给出i = 023
的值时,在输出中我希望获得i = 23
和j = 2
。但为什么i
成为19
?
答案 0 :(得分:6)
023视为八(8)碱。基数8中的023是十进制数的19。
答案 1 :(得分:4)
在Java编号中,从0个处理过的八进制数开始,即基数为8。
class Octal{
public static void main(String[] args){
int six=06; //Equal to decimal 6
int seven=07; //Equal to decimal 7
int eight=010; //Equal to decimal 8
int nine=011; //Equal to decimal 9
System.out.println("Octal 010 :"+eight);
}
}
输出是: Octal 010:8
答案 2 :(得分:0)
在数字(023)之前添加零时,实际上是将其转换为八进制。在这里,您尝试将输出视为十进制。所以你得到的输入八进制的十进制等值。