【发布时间】:2016-06-01 23:15:26
【问题描述】:
class test{
public static void main(String args[]){
int a = 011;
System.out.println(a);
}
}
为什么我得到的是9 而不是011?
我怎样才能得到011 作为输出?
【问题讨论】:
-
String.format("%02d", a) -
011 是以 8 为底的文字,因此以 10 为底,您得到 9=(8^1+8^0)。更多详情见stackoverflow.com/a/7218803/5166645
-
以 0 开头的数字称为十六进制数字。
-
@SmashCode 不完全正确。在 Java 中以“0”开头的数字称为 octal,以 8 为基数(octa- 是 8 的希腊前缀)。以“0x”开头的数字称为 hexadecimal(简称 hex),以 16 为基数(hexa- 是 6 的希腊前缀,而 deci- 是 10 的拉丁前缀)。常规数字被称为十进制,因为它们是以 10 为底的。八进制和十六进制很有用,因为它们比十进制更容易转换为二进制。
标签: java int output zero println