计算机系统是以二进制为基础的。数据/指令用二进制编码。编码可以以多种格式进行- ASCII, UNICODE等。
微处理器是为选定的"编码格式"制作的吗?如果是,它如何与其他编码格式兼容?在这种情况下不会有性能损失吗?
当我们创建一个程序时,它的编码格式是如何选择的?ASCII和UNICODE是对文本数据的编码,与二进制数据无关。
不,所有的微处理器都知道二进制数——它们不知道这些数字的含义。这种意义是由我们和我们用来构建程序的工具提供的。例如,如果你用Visual Studio编译一个c++程序,它会使用多字节字符,但是CPU不知道。
微处理器体系结构的一个重要方面是端序—例如,当您尝试在大端机器上读取UTF-16LE编码文件时,您必须交换每个代码单元的单个字节以获得期望的16位整数。对于代码单元大于一个字节的所有编码形式,这都是一个问题。有关更深入的讨论,请参阅Unicode标准第二章的2.6节。处理器本身仍然可以处理单个整数,但是作为库开发人员,您必须处理从文件(即字节序列)到内存数组(即代码单元序列)的映射。