1)数值→字符
大多数计算机采用ASCII 8位编码表,包含ASCII码为0~127的128个字符,每个字符对应一个ASCII码。了解如何将数值转换成字符之前,需要知道字符和字符之间、字符和数值之间相加的规则。
字符 + 字符 = 字符的ASCII + 字符的ASCII
'a' + 'b' = 97 + 98 = 195;
字符 + 数值 = 字符的ASCII + 数值
'a' + 2 = 97 + 2 = 99;
相加的结果都是整数。
其实将数值转换为字符很简单,大家也都懂,直接转换就行,比如:
char ch = 8;
char ch1 = (char) 8;
但大多数人的问题在于,ch == ‘8’?
其实不是。因为,将整数转换为字符实质上是将整数作为ASCII码值赋值给字符。也就是说此时ch是值为8的ASCII码对应的字符,而’8’对应的ASCII码值为56.
正确的方法是这样的:
char ch = 8 + '0';
所以,将数值单纯的转换为字符通过直接转换的方式就行了。如果想将数值(0~9)转换为对应的字符,记得加上‘0’。
2)字符→数字
如果字符的ASCII值在目标变量的范围内,可以直接转换,比如:
int i = 'a'; // 字符'a'的ASCII码值97
如果字符的ASCII值超出范围,为了强制赋值,需强制转换。