为什么一些处理器制造商决定使用

  • 小尾数法
  • 大尾数
  • 中端
  • 还有其他人吗?

?

我听说使用大端序可以更快地找出数字是负数还是正数,因为该位是第一个。(这在现代 CPU 上并不重要,因为无法再访问单个位。)

有帮助吗?

解决方案

小字节序的好处是可以使用相同的地址将变量读取为任意长度。

例如,可以将 32 位变量读取为 8 位或 16 位变量,而无需更改地址。如今,这可能带来的好处有限,但在汇编器和内存有限的时代,这可能是一个显着的优势

其他提示

除了使用本机 CPU 字节顺序或处理指定的文件字节顺序之外,大字节序或小字节序本身并没有什么特别的好处。

大端和小端并存的原因是不同的CPU制造商使用不同的约定来表示多字节数据,并且当时没有出现标准。

使用 CPU 的字节顺序(无论大小)可为您带来算术速度优势:你可以加、减等。直接在内存中的多字节整数。

在文件格式中使用预定义的、规定的字节顺序(无论大小)可以让您受益于能够在任何系统上读取文件,而不管其他系统的 CPU 的字节顺序如何。具有正确字节序的系统可以更快地读取文件(如果正确编写和优化读取例程),但即使字节序错误的系统也可以读取它。通常,速度差异可以忽略不计(除了具有大量整数的非常大的文件),因此最好首先测量优化读取例程的最大可能速度增益。

某些文件格式(例如 TIFF)支持两种字节序。在这种情况下,假设文件将在同一台机器或类似机器上进行后处理,则最好使用 CPU 的字节顺序生成文件。

在小尾数中,您不必费心更改地址,但在大尾数中,您必须: http://www.noveltheory.com/techpapers/endian.asp

我实际上不知道在现代 CPU 中小端是否比大端有优势。我天真地认为切换地址会消耗 CPU 皮瓦的电量:)

某些操作受益于让某个值的一部分先于另一部分可用。当两个无符号数或补码数太大而无法一次读取时,可以在高位可用之前计算结果的低位,但反之则不然,这意味着小端序在此处是有利的。访问串行闪存芯片时,只有当定义行的所有位(通常是除最低有效位 8-12 位之外的所有位,具体取决于芯片)都可用时,行解码才能开始,这意味着大端顺序是有利的那里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top