代码之家  ›  专栏  ›  技术社区  ›  Samuel Jack

哪些与.Net兼容的体系结构不是little endian?

  •  3
  • Samuel Jack  · 技术社区  · 14 年前

    这个 BitConverter 类有一个字段 IsLittleEndian 根据文件记载:

    我在Reflector中注意到,在BitConverter的静态构造函数中,字段被硬编码为true。

    所以我的问题是,在使用位转换器时,我需要考虑IsLittleEndian吗?换句话说,在big-endian平台上是否有.Net实现?如果不是的话,这个领域最初的目的是什么?

    6 回复  |  直到 14 年前
        1
  •  3
  •   stakx - no longer contributing Saravana Kumar    14 年前

    CLI标准并不禁止任何特定的Endianness,因此如果您希望您的程序是可移植的,您应该

    (p.161)-第一部分,第12.6.3节:“字节顺序”:

    我怀疑你看到了 IsLittleEndian 在Reflector中,因为当您在计算机上下载/安装.NET Framework时,特定的安装包是针对特定平台的(例如Intel x86,它是Little Endian)。

    因此,我可以想象.NET framework的其他安装包 伊斯利特林迪亚 根据特定安装目标的平台,硬连线返回不同的值。

        2
  •  3
  •   Mark    14 年前
        3
  •  3
  •   Matthieu kelly    14 年前
        4
  •  2
  •   Tomek Szpakowicz    14 年前

    Mono DotGNU 有大端机的版本。Mono至少在Sparc上的solaris10和PowerPC上的macosx上运行。DotGNU拥有更广泛的可用平台列表。

        5
  •  1
  •   Joshua    14 年前

        6
  •  0
  •   Samuel Jack    14 年前

    XBox360是BigEndian的。微软的robertunoki有一个很好的例子 blog post 关于检查IsLittleEndian标志的重要性,以及当微软开发者未能做到这一点时,在将CLR移植到XBox360时发生的错误。