刚学java,  整数2怎么可以和字符'2'相加,  请大家指教Char i=2+  ’2’;
System.out.printIn(i);    //结果为4

解决方案 »

  1.   

    char参与数值运算时,要转为int型.就是用字符的unicode来参与运算。
      

  2.   

    2+‘2’= 52
    52为ascii码,其对应的值为4,你可以用30+‘2’测试一下,就会更了解了
      

  3.   

    请问下
    byte i='2'+2;
    System.out.print(i);     
    byte在参加运算时自动转换为int,  
    byte i='2'+2;  这样写如何理解
      

  4.   

    byte i='2'+2;
    运算时,把'2'和2都看到int,再做加运算,结果的最高的3个字节被截去,只把最低的一个字节的的值赋给i
      

  5.   

    byte在参与运算时有个自动提升的过程
      

  6.   

    char 就是 int啊~~~
    字符编码中2+’2’='4'
    System.out.printIn(i)就输出'4'咯~~
      

  7.   

    char和short都是16位类型Unicode字符,所以它int类型的2相加,自动转换到ASC II码。52.
    这和下面的程序一样:
    char a='a';//ASCII码为65;
    int x=a;
    x++;
    char b=(char)x;
    System.out.println(b);
    b的ASCII码就是66.也对应着b,
      

  8.   

    int,short,byte,char 这4中类型在进行运算的时候类型自动转换成int类型(因为int类型级别高于其他3个的级别,也就是运算时候低级类型要向高级类型转换的原则[
    那么自然char在这个数值运算过程中,自动转换成int型.i=2+'2'-->i=2+2-->i=4-->over
    基本概念要搞清楚,数学运算中类型低的自动转换成类型高的:
    int<long<flout<double,再送你4句话用于运算类型转换:1,如果两个操作数中有一个事double类型,另一个操作数会自动转换成double类型的。2,否则,如果其中一个事flout型的,另一个会自动转成flout型的3,否则,其中一个是long型的,另一个自动转换成long型的。4,否则,2二个操作数都将被转换成int类型的。    这里的4,也就是你的题目了,你的两个操作数都会自动变成int类型的 所以是4
      

  9.   

    java自动类型转换的规则
       1.数据类型兼容
       2.目标类型大于源类型   
      

  10.   

    very good!偶明白了,谢谢!