整数在Java中引领零问题

时间:2014-11-03 08:49:50

标签: java

我写了一个非常简单的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 = 23j = 2

现在,我不断更改程序中i的值。产出开始发生变化。

i = 02的值和输出变为 - i = 2j = 0

i = 023的值和输出变为 - i = 19j = 1

现在我很困惑。当我在程序中给出i = 023的值时,在输出中我希望获得i = 23j = 2。但为什么i成为19

3 个答案:

答案 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)之前添加零时,实际上是将其转换为八进制。在这里,您尝试将输出视为十进制。所以你得到的输入八进制的十进制等值。