Java中的整数前导零问题
我编写了一个非常简单的Java程序:Java中的整数前导零问题,java,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); } } 输出与预期一样-
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
?023被视为八进制。以8为基数的023是以十进制为基数的19。在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);
}
}
输出为:
八进制010:8当你在一个数字(023)前加一个零时,你实际上是在把它转换成八进制。在这里,您试图以十进制形式查看输出。所以你得到的是输入八进制的十进制等价物