第1个回答 2016-08-06
char类型是16位的,底层采用unicode编码保存.
char类型是可以直接赋值给int类型的,因为是16位到32位低到高.
举个例子比如int i='1';打印i的值是49.
char类型跟int类型进行计算的时候会自动转换为int类型
比如System.out.println('1'+1);输出结果是50.
char类型的'='换成int是61本回答被提问者采纳
第2个回答 2019-07-25
刚好今天在复习,过几天就面试去的.当然我说的是JAVA的.我给你几个例子就知道了.
System.out.println('0'+'A');// 48+65 = 113 未指定类型--输出int
System.out.println((char)('0'+'A'));// q 强转char --输出char
System.out.println(10+'A'); //75 未指定类型--输出int
System.out.println((char)10+'A'); //75 未指定类型--输出int
System.out.println((char)(10+'A')); //K 强转char --输出char
System.out.println((char)((char)10+'A')); //K 强转char --输出char
也就是说,结果未指定类型的情况,默认输出的是码值(ASCII码表对应的值),即int类型.
如果指定了类型,输出的就是那个类型.比如char.
我的总结:
字符参与运算,其实是拿字符对应的码表中的数字进行运算的,
如果本身不是字符,而是int类型或char类型的数字(默认为码值,比如 char a = 10, int a = 10;这里的10都会默认为码值10),则就先转换其他字符对应的码值再计算结果,找到结果对应的字符.如果类型为char型,则输出字符,如果不是,则输出结果码值.