【问题标题】:Convert Python array/byteshift/struct to C#将 Python 数组/字节移位/结构转换为 C#
【发布时间】:2015-11-18 20:06:06
【问题描述】:

我正在努力将看似简单的代码从 Python 转换为 C#,如下所示:

def computeIV(self, lba):
      iv = ""
      lba &= 0xffffffff
      for _ in xrange(4):
          if (lba & 1):
              lba = 0x80000061 ^ (lba >> 1)
          else:
              lba = lba >> 1
          iv += struct.pack("<L", lba)
      return iv

习惯了 C# 逻辑,实在看不懂数组位掩码……

【问题讨论】:

  • 关于这段代码,C# 逻辑实际上与 Python 逻辑相同。你已经尝试过什么?

标签: c# python


【解决方案1】:

您可以在 C# 中使用 BitArray Class 来管理位值的紧凑数组,这些值表示为布尔值,其中 true 表示该位打开 (1),false 表示该位关闭 (0)。

它提供 AND、OR、NOT、SET 和 XOR 函数。

对于 Shift 操作,可以在此处找到可能的解决方案: BitArray - Shift bitsShifting a BitArray

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2011-10-04
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多