【问题标题】:Does bit-shifting always take the Endian architecture into consideration?移位是否总是考虑 Endian 架构?
【发布时间】:2013-03-09 20:15:13
【问题描述】:

假设我从 C++ 移植代码并且需要在 C# 中模拟相同的位移技术:

每当我执行位移时,我是否必须考虑架构的终结性?

【问题讨论】:

    标签: c# c++ bit-shift endianness


    【解决方案1】:

    没有。位移是纯粹的代数运算。它并不比乘以 2 更依赖于平台。

    平台相关的是将变量解释为字符数组的结果。

    【讨论】:

    • 如果我单独读取字节,或者增加一个 PTR 会得到相同的结果,或者 PTR 可以“看到”字节序吗?
    • @makerofthings7:什么是“PTR”? “相同的结果”是什么意思?将对象重新解释为字节数组会向您展示对象的二进制表示,包括字节序...
    • 我指的是 c# 中不安全模式下的内存指针。我不确定我是否有一个 64 位字并将指针加一,我会看到。
    【解决方案2】:

    不,你没有。在 C++ 和 C# 中,您可以完全按照存储的数字来考虑位移,而忽略架构的字节顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-01
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 2017-08-15
      • 2020-05-03
      相关资源
      最近更新 更多