/**
目标:ASCII编码表。
计算机底层是不能存储字符,计算机底层都是二进制。
计算机一定需要存储字符的。
所以每个国家为自己的字符都设计了一个编号。
计算机底层是可以存编号。
101 = 1*2^0 + 0 * 2^1 + 1 * 2^2 = 5
美国人:
自己国家的字符要设计编号。
每个人用1个字节存储一个编号表示一个字符。
a 97
b 98
c 99
A 65
B 66
C 67
1 48
2 49
这套编码称为ASCII码。
中国人:
2个字节表示一个字符。任何编码表都兼容ASCII编码表,如97在任何编码表都为字母a
万国码: Unicode -> UTF-8
小结:字符在底层其实就是一个整数编号。
byte -> short -> int -> long -> float -> double
/
char
char的范围是远远的小于int范围。
小结:
字符可以自动转换成int。
int必须强制类型转换成字符。
*/
public class ASCIIDemo{
public static void main(String[] args){
int ch = ‘b’; // 自动类型转换
System.out.println(ch);
char ch1 = 'a';
int it = ch1; // 自动类型转换
System.out.println(it);
int code = 99 ;
char ch2 = (char)code; // 强制类型转换
System.out.println(ch2);
// 编译器在编译以后已经把 'a'当成97+2了, 97+2 99 正好在char范围内。
// 如果整数在范围之内,是可以自动类型转换的。
char ch2 = 'a' + 2;
}
}