java深入介绍字符、字符运算、1个十六进制数占4bit,4个十六进制数就占16bit,两个字节、Unicode几乎能代表全世界的字符
字符
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);