代码之家  ›  专栏  ›  技术社区  ›  Georg Schölly Crazy Developer

不同端部的好处是什么?

  •  11
  • Georg Schölly Crazy Developer  · 技术社区  · 15 年前

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

    • 小恩迪亚
    • 大端
    • 中端
    • 还有其他的吗?

    ?

    我听说,如果一个数字是负数或正数,使用big-endian可以更快地发现,因为该位是第一位。(这在现代CPU上并不重要,因为单个位不能再访问了。)

    5 回复  |  直到 15 年前
        1
  •  18
  •   David Sykes    15 年前

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

    例如,32位变量可以在不更改地址的情况下读取为8位或16位变量。如今,这可能带来的好处有限,但在汇编程序和内存有限的时代,这可能是一个显著的优势

        2
  •  3
  •   mouviciel    15 年前

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

        3
  •  1
  •   pts    15 年前

    使用CPU的endianness(无论大小)在算术上给您带来了速度优势:您可以直接在内存中添加、减去等多字节整数。

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

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

        4
  •  0
  •   sterz    11 年前

    在little endian中,您无需更改地址,但在big endian中,您必须: http://www.noveltheory.com/techpapers/endian.asp

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

        5
  •  0
  •   supercat    8 年前