本身我有一篇文章专门谈这个事情,结果被说内容不好。
题外话,回答主题:
其实对计算机系统来说,没有什么十六进制转字符,字符在计算机中存储本身就是按一个一个编号来的,在计算机中也是二进制存储处理,注意,计算机也仅仅处理二进制,十六进制数仅仅是为了显示和人识别方便,的一种显示表示方法(内存中、计算机中也仅仅是多少位的二进制,并不存在十六进制)
前面提到了字符本身也是用一个一个数字来编码的,说穿了,就是给每个字符一个编号,对普通的英文字母和最常用的标点等等来说这个编号(编码)系统(规则)就是ASCII编码,在这个编码系统中,每个字符都是8个位,一共有256个可能,它们和包括普通英文大小写字符以及一些符号是一一对应的,这样只有知道一连串的二进制数据是ASCII字符串,就按8位划分开,再查每8位对应的数字找到对应的字符就完成了转换(对计算机来说,在处理是还是按数字处理,仅仅是需要显示输出时再进行这样的转换),这样的数据同时也可以按8位以十六进制数据数组的方式显示出来,就类似你最开始的十六进制数据数组啦。
总结一下:
1. 对ASCII编码的字符串实在为8位二进制一个单元的数据(数字)数组
2. 这些数组同时可以按十六进制(2位)来表示成 十六进制数组
3. 这8位二进制数和2位十六进制数是一一对应的,也可以通过ASCII编码系统查表找到对应的字符符号
4. 数据在计算机处理、传输和存储过程中都是以多位二进制数据进行表示,并不存在十六进制数据,十六进制数据、字符等等都是为了显示和方便人的读取才临时处理出来的。
如果数据直接给的十六进制“字符”串,则也仅仅需要按2个字符转换成数字存储一下就变成字符串啦。