【发布时间】:2021-01-25 09:58:44
【问题描述】:
public class Main
{
public static void main(String[] args) {
char a='3';
int b=011;
System.out.println(a+b);
}
}
输出为 60
有人能解释一下为什么 java 会这样吗?
【问题讨论】:
-
如果你能告诉我们为什么你认为它应该是 311。你的理由是什么? 011 是八进制的 9(十进制)
-
先转成字符串
-
char和int都是数字类型。带有前导零的数字文字被解释为八进制,因此011实际上是9。char3在 ascii 系统中的十进制值为 51。然后你的代码打印出51+9。
标签: java string concatenation