为什么一些处理器制造商决定使用:
- 小端序
- 大端序
- 中端序
- 还有其他的吗?
?
我听说,使用大端序可以更快地确定一个数是正数还是负数,因为符号位在第一个位置。(在现代CPU上这已经不重要了,因为无法再访问单个比特。)
为什么一些处理器制造商决定使用:
?
我听说,使用大端序可以更快地确定一个数是正数还是负数,因为符号位在第一个位置。(在现代CPU上这已经不重要了,因为无法再访问单个比特。)
小端序的好处是可以使用相同的地址读取任何长度的变量。
例如,32位变量可以作为8位或16位变量读取而不改变地址。虽然在现代汇编和内存充足的情况下可能受益有限,但在早期内存受限的时代,这可能是一个显著的优势。
大端和小端本身没有特定的好处,除非使用本机CPU字节序或处理指定的文件字节序。
之所以同时存在大端和小端,是因为不同的CPU制造商使用不同的约定来表示多字节数据,在当时没有出现标准。
利用 CPU 的字节序(无论是小端还是大端)可以在算术运算中获得速度优势:您可以直接在内存中添加、减去等多字节整数。
在文件格式中使用预定义的、规定的字节序(无论是小端还是大端)可以使您能够在任何系统上读取该文件,而不管其他系统的 CPU 字节序如何。具有正确字节序的系统可以更快地读取文件(如果读取例程编写和优化得当),但即使具有错误字节序的系统也可以读取它。通常,速度差异微不足道(除了具有大量整数的非常大的文件),因此最好先测量优化读取例程的最大可能速度增益。
一些文件格式(例如 TIFF)支持两种字节序。在这种情况下,假设文件将在同一台机器或类似机器上进行后处理,则使用 CPU 的字节序生成文件是一个好主意。