code(密码;编码)
Unicode(采用双字节对字符进行编码,统一的字符编码标准)
通常情况下1个代码单元(16bit=2byte=2字节=代码单元)就可以表示所有字符
16位Unicode码占两个字节,用以u开头的4个十六进制数(0~9+A~F)表示(一个十六进制数占4bit,4个十六进制数就占16bit,两个字节)范围从u0000到 uFFFF, 65536个字符 (Unicode几乎能代表全世界的字符)
大多数计算机采用ASCII码,它是表示所有大小写字母、数字、标点符号和控制字符的8b位编码表(可以表示128个字符)
Unicode 码包括ASCII码,从u0000 到 u007F 对应128个ASCII码
常用字符的ASCII码
| 字符 | 十进制编码值 | Unicode值 |
|---|---|---|
| ‘0’~‘9’ | 48~57 | u0030~u0039 |
| A~Z | 65~90 | u0041~u005A |
| a~z | 97~122 | u0061~u007A |
自增自减操作符也可用在char型变量上,这会得到该字符之前或之后的Unicode字符。
例如
char ch = 'a';
System.out.println(++ch);会输出 'b'
将整数转化成char数据时,只用到该数据的低16位,其余部分都被忽略比如 char ch = (char) 0xAB0041: 期中超过16位的AB将会丢失
将浮点型转换char时,自动先将浮点型转化为int,再转化为char
char转化为int时,这个字符的Unicode码就被转换成某个特定的数值类型比如A——>65
0~FFFF的任意1个十六进制正整数都可以隐式的转换成字符型数据,而不在此范围内的其他数值都必须显式的(强制)转换成char型
如果对char操作数是字符串,那么字符就会与该字符串相连
//如果操作数是数字或字符
int i = '2'+'3';
System.out.println("i is:"+i);//i is:101
int j = 2 +'a';
System.out.println("j is:"+j);//j is:99
//如果操作数是字符串
System.out.println("Chapter M:"+'2');//Chapter M:2
整数转十六进制
Scanner in = new Scanner(System.in);
System.out.println("请输入0~15的一个整数:");
int x=in.nextInt();
char result = (char) ( x>9 ? ('A'+(x-10)) : ('0'+x));
System.out.println("转换为十六进制为:"+result);



