char字符型与int型的相互转换

char[] ch = {'a', 'b', 'c'};
System.out.println(ch[0]);//a
char fg = 97;
System.out.println(fg);//a
char f = '9';
System.out.println(f);//9
//int 转换为char型;
// int类型转char类型,将数字加一个‘0’,并强制类型转换为char即可。
int num = 9;
char cNumber = (char) (num + '0');//为啥要加‘0’,'0'会自动转换为int型进行计算
System.out.println(cNumber);//9

//char转换为int

char cc = '6';
int number = cc - '0';//为啥要减去0
System.out.println(number);//6


System.out.println(Integer.parseInt(String.valueOf(cc)));//6

解释:为啥加0与减去0的问题:

1)在计算机中,0-127表示数字和字符,

假设这里字符‘0’------‘9’   ,

   对应int数字48--------57.

然后想要char转换为int,与'0'的偏移量则刚好是代表的数字。

想要int转换为char, 数字9想转换为为字符9,加‘0’,’0‘参与运算时,自动转换为int型,48+9=57,再强制转换为char,就是字符9

“向上兼容”--即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是

(unsigned)char,(unsigned)short->int->unsigned->long->unsigned long->float->double->longdouble。

参考:

https://www.cnblogs.com/hongten/archive/2013/03/24/hongten_java_char_int.html

https://www.cnblogs.com/yongh/p/9688259.html

发布了45 篇原创文章 · 获赞 8 · 访问量 5860

猜你喜欢

转载自blog.csdn.net/wenyunick/article/details/103521918