class TestPass
{
public static void main(String[] args)
{
char ch0=2+'2';
char ch1=2+2;
char ch2='2'+'2';
System.out.println(ch0);
System.out.println(ch1);
System.out.println(ch2);
}
}运行结果如下:
4
┙
d为什么会有这样的结果,分别解释一下。
{
public static void main(String[] args)
{
char ch0=2+'2';
char ch1=2+2;
char ch2='2'+'2';
System.out.println(ch0);
System.out.println(ch1);
System.out.println(ch2);
}
}运行结果如下:
4
┙
d为什么会有这样的结果,分别解释一下。
第三个打印 '2'的asc码加上 '2' 的asc码值..
然后告诉你
System.out.println('2'+'2');
这个的结果是100.
在运算前会自动转化为ASCII码。
这个的结果是100. ??
输出100
class TestPass
{
public static void main(String[] args)
{ char ch0=2+'2';
char ch1=2+2;
char ch2='2'+'2'; System.out.println(ch0);
System.out.println(ch1);
System.out.println(ch2);
}
}
进行字符运算的时候,字符会先被转换为整形,'2'的ASCII码是50
cho = 2 + '2' ===>cho = 2 + 50 ===>cho =52('4'的ASCII码是52,所以打印出4)
同理可得其它
char ch1=2+2;
char ch2='2'+'2';
这样看是感觉乱,你把字符换算成数值来看就清楚了
char ch0=2+'2'; // char ch0 = 2 + 50;
char ch1=2+2; // char ch1 = 2 + 2;
char ch2='2'+'2'; // char ch2 = 50 + 50;
char ch1=2+2;
char ch2='2'+'2'; System.out.println(ch0);
System.out.println(ch1);
System.out.println(ch2);
首先'2'是 2的ascii码 然后 +2 然后再转化为字符
ascii->char
打印的时候 就打印出字符了啊
第二个打印ASCII码值的CHAR
第三个也是直接打印ASCII码值
看成ascii码值对应运算就可以了。
时再进行相应的转换,可参考ASCII 码表
Decimal Octal Hex Binary Value
...
097 141 061 01100001 a
098 142 062 01100010 b
099 143 063 01100011 c
100 144 064 01100100 d
101 145 065 01100101 e
...
时再进行相应的转换,可参考ASCII 码表
Decimal Octal Hex Binary Value
...
097 141 061 01100001 a
098 142 062 01100010 b
099 143 063 01100011 c
100 144 064 01100100 d
101 145 065 01100101 e
...
char ch1=2+2; 两个十进制数相加是4 而这个4 是一个unicode码 它所对应的字符是 就是楼主输出的那个 我打不出来 O(∩_∩)O哈哈~
char ch2='2'+'2'; '2'的unicode码是 50(十进制数) 两个相加结果首先是十进制的100 这是个unicode码 它对赢的字符就是 d
给楼主几个 参考 '0' 字符0 (也就是数字0) 对应的unicode码是 48(十进制数)
'a' 字符a 对应的unicode码是 97(十进制数)
'A' 字符A 对应的unicode码是 65(十进制数)