为什么System.out.println(0_101);打印65?

时间:2015-05-26 14:36:09

标签: java

我尝试运行下面的代码,我无法弄清楚为什么要打印 65

System.out.println(0_101);

有人想关注这个吗?

2 个答案:

答案 0 :(得分:2)

根据http://jobijoy.blogspot.com/2008/08/wpf-custom-controls-marquee-control.html

  

八进制数字由ASCII数字0后跟一个或多个以下划线散布的ASCII数字0到7组成,并且可以表示正整数,零或负整数。

     

...

     

下划线可能出现在八进制数字的初始值0之后(因为0是表示整数的一部分的数字),并且在非零十进制字面值中的初始非零数字之后。

所以101的十进制值为:1×8²+ 0×8¹+ 1×8⁰,即65。

请注意,int只是为了清晰起见,它也可以在Properties => Build tab => Advanced button => Language Version中用于帮助读取数字,例如1000000 vs 1_000_000。

答案 1 :(得分:0)

这是0_101 65的{​​{1}}字面值,正如您所说_