System.out.println(' 3' + 0);

时间:2015-01-27 03:51:09

标签: java char int system.out

因此,如果您运行上述System.out.println( '3' + 0 );

语句

你得到51作为输出。

如果你运行另一个类似的陈述,

System.out.println(  3  + '0' );

你得到相同的结果,即51.

但是,如果你运行第三个语句,

System.out.println( '3' + '0' )

然后你得到99作为结果。

任何人都可以解释这三个结果究竟发生了什么?

4 个答案:

答案 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 = 513 + '0'也是如此。

所以'3' + '0'表示51 + 48 = 99