2
public static void main (String[] args) {
int a = 0010;
String num = Integer.toString(a);
System.out.println(num);
}
为什么打印8不是0010?Java中的Integer.toString如何正确工作?
public static void main (String[] args) {
int a = 0010;
String num = Integer.toString(a);
System.out.println(num);
}
为什么打印8不是0010?Java中的Integer.toString如何正确工作?
Java将解释以0
开头的整数表示为octal。八进制(基数8)中的10
为十进制8(基数10)。 Integer.toString()
在这种情况下正在做正确的事情,因为a
的值的确是8.
整数以二进制形式存储在内存中。有几种方法可以定义整型文字。 0010
是八进制数,以8为基数。(toString
)以10为底(十进制)打印。
关于这个问题在这个问题上的许多变化 - 见例如http://stackoverflow.com/questions/24031843/is-00-an-integer-or-octal-in-java/24032020#24032020 – fvu
可能的重复[整数与前导零](http://stackoverflow.com/questions/565634/integer-with-leading-zeroes) – fvu