因此,如果在System.out.println( '3' + 0 );上运行以下语句
你会得到51作为输出。
如果您运行另一个类似语句,
System.out.println( 3 + '0' );您会得到相同的结果,即51。
但是,如果运行第三条语句,
System.out.println( '3' + '0' )然后你会得到99作为结果。
有人能解释一下这三个结果背后到底发生了什么吗?
发布于 2015-01-27 11:56:22
当你把像0这样的数字放在‘’里面,你返回的是0的ASCII/Unicode值,在这种情况下是48,这就是为什么当你把3加到'0‘时得到51。
发布于 2015-01-27 11:58:22
因此:
char c = '0';
int ascii = (int) c; // ASCII of '0' is 48
System.out.println( 3 + ascii);发布于 2015-01-27 12:02:42
“3”的ascii代码是51。当你把一个整数0加到它上面时,结果是51,然后打印出来。类似地,'0‘的ascii代码是48,你在它的基础上加上3…但是当你在ascii格式中同时添加'3‘和'0’时,它会添加48和51,因此输出是99。这是由于java中的隐式类型转换造成的。
https://stackoverflow.com/questions/28162929
复制相似问题