因此,如果您运行上述System.out.println( '3' + 0 );
你得到51作为输出。
如果你运行另一个类似的陈述,
System.out.println( 3 + '0' );
你得到相同的结果,即51.
但是,如果你运行第三个语句,
System.out.println( '3' + '0' )
然后你得到99作为结果。
任何人都可以解释这三个结果究竟发生了什么?
答案 0 :(得分:1)
当你把0之类的数字放在' '您返回的ASCII / unicode值为0,在这种情况下为48,这就是为什么当您将3添加到' 0'你得到51。
答案 1 :(得分:1)
因此:
char c = '0';
int ascii = (int) c; // ASCII of '0' is 48
System.out.println( 3 + ascii);
答案 2 :(得分:1)
ascii代码'3'是51.当你向它添加一个整数0时,结果为51并打印出来。类似地,'0'的ascii代码是48并且你正在向它添加3 ...但是当你以ascii格式添加'3'和'0'时它添加48和51因此输出是99.这是因为在java中的隐式类型转换。
答案 3 :(得分:0)
使用System.out.println( '3' + 0 );
或System.out.println( 3 + '0' );
时
这是一个类型开关,char 0表示int 48,因此'3' + 0
表示51 + 0 = 51
,3 + '0'
也是如此。
所以'3' + '0'
表示51 + 48 = 99
。