class Jspiders
{
public static void main(String[] args)
{
System.out.println("number is "+20+010);
}
}
当我尝试打印" 2001"结果是201 ??
答案 0 :(得分:2)
真的很酷!语言是java,我只是试了一下。我不知道java可以读取小数以外的数字文字,但我从来没有真正尝试过。它看起来像是因为它认为010是基数为8的数字并且是以八位字节形式
010 = 8
01 = 1
所以20 + 010会给你208(不是28,因为如果你输入(20 + 010)它会进行字符串连接然后它会打印28)
和20 + 01给你201
我也玩了一下,并注意到如果你做20 + 0xA它会给你2010(0xA是10十六进制)。
这就是为什么你得到这些结果。
答案 1 :(得分:0)
010是八进制数表示(基数8)
operator +适用于最左边的操作数的类型,这是一个字符串,因此+是字符串连接的运算符。
System.out.println("number is "+(20+010));
会给你一个不同的答案,包括2个数字的整数加法,(20 + 010)的最左边部分是一个数字。