起因,我做了一道题
int three=3;
char one='1';
char four=(char)(three+one);
如果你觉得很简单,一眼就可以看出结果,那么可以直接划掉这篇文章。
我很菜,看到这个后我写错了!!!
首先一看可以看出是------强制转换。
int----->char
参考博客----算出结果了【1】Java中怎么把int型的数字转换成char型的数字_是Guava不是瓜娃的博客-CSDN博客_java 数字转char
然后是机器验证过程!!!
首先是int 类型 的3经过强制转换成char型的,由ASCII码表可以看出与机器运行结果保持一致
public class zhuanhuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
int three=3;
char four=(char)three;
System.out.print(four);
}
}
回到题目来,(char)(three+one),应该是
1.char型的one自动转换成int型的,经过查ASCII表可以得出,字符'1'对应的ASCII是49
2. 3+49=52,再次查阅ASCII表,可以得出 52 对应的字符是‘4’
3. 所以,结果是‘4’
最后是机器验证环节
public class zhuanhuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
int three=3;
char one='1';
char four=(char)(three+one);
System.out.print(four);
}
}
结论------------int型的数字转char型的字符只是差了48而已,就是数字型转成字符型数据类型发生改变,如果有错误请大胆指出批评谢谢谢谢!!!(第一次写,还是挺紧张的)
查阅了很多资料,char转换成int,有数据范围的问题,可以去网上搜素看看!!!