我们平时见到的数字、字母、中文、日文、希腊文、标点符号等等都属于字符,每个字符都有对应的字符编码,按照相应的编码规则(比如utf-8、gbk等等)将这种字符编码转成字节组,并对字节组里面的每一个字节转成十进制数即得到该字符的字节码。话不多说,直接上例子:
比如汉字’肖’是一个字符,他的字符编码是32918(可以通过java的强制转换得到, int x = (int)’肖’),32918的二进制表示形式是1000000010010110(可以通过java方法得到,String b = Integer.toBinaryString(32918)),下一步选用编码规则,我们选用utf8编码规则,utf8是一种变字节编码,对于数字或英文字母采用1字节编码,对希腊文等采用2字节编码,对中文采用3字节编码,3字节编码的规则是任何一个汉字都可以用三个字节表示即[ 1110 xxxx,10 xxxxxx,10 xxxxxx ],因为我们把字符编码1000000010010110按顺序放置到这个规则里就形成了字节组[ 1110 1000 ,10 000010,10 010110 ],再将该字节组里面的三个字节分别转成十进制数就可以得到字符’肖’的字节码[-24, -126, -106]。注意字节转换十进制的时候首位为0表示正,首位为1表示负,并且负的情况下需要求补码。
最后我们可以使用代码验证下’肖’的字节码是否正确
System.out.println(Arrays.toString(\肖\.getBytes(\))); 输出
1
验证正确!!
2
字符与字节的关系 - 图文
我们平时见到的数字、字母、中文、日文、希腊文、标点符号等等都属于字符,每个字符都有对应的字符编码,按照相应的编码规则(比如utf-8、gbk等等)将这种字符编码转成字节组,并对字节组里面的每一个字节转成十进制数即得到该字符的字节码。话不多说,直接上例子:比如汉字’肖’是一个字符,他的字符编码是32918(可以通过java的强制转换得到,intx=(int)’肖’),3
推荐度:
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
点击下载文档文档为doc格式