【发布时间】:2013-10-07 03:07:29
【问题描述】:
请解释执行以下代码部分时究竟会发生什么:
int a='\15';
System.out.println(a);
这打印出 13;
int a='\25';
System.out.println(a);
这打印出 21;
int a='\100';
System.out.println(a);
这打印出 64。
【问题讨论】:
-
看起来它正在将数字解释为八进制。
-
int a='\15'首先基于八进制数“15”(十进制 13,作为字符,它是 ascii“回车”)创建一个char,然后将其重铸为int整数。这是合法的,因为 chars 是 16 位整数,所以它是一种安全的向上转换,Java 不会发布关于转换的通知。其他答案已经涵盖了整个八进制/十进制。
标签: java syntax character literals octal