请解释下面的代码
public class Example{
public static void main(String[] args)
{
int i[]={9};
System.out.println("\700");
}
}
Run Code Online (Sandbox Code Playgroud)
请不要说我的八进制值应该小于377.我已经知道但是当我运行上面的程序时,我得到输出为80.我想知道它为什么会这样发生?
请说清楚.谢谢
基本上,你有两个角色:'\70'和'0'.
octals的转义序列在JLS中记录为:
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
Run Code Online (Sandbox Code Playgroud)
最后一个不适用于您的情况,因为'7'不在ZeroToThree中,但'7'和'0'都是八进制数字,因此它匹配第二个模式.
所以,现在我们只需要知道为什么'\70''8'......那是因为八进制70是十进制56或十六进制38,这是'8'的UTF-16代码单元.
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |