我正在努力将一个明显容易的代码从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#逻辑,我真的不能理解数组bitmask…
你可以在c#中使用BitArray Class
,它管理一个紧凑的位值数组,这些位值表示为布尔值,其中true表示位在(1)上,false表示位在(0)上。
提供AND、OR、NOT、SET和XOR函数。
对于Shift操作,可以在这里找到一个可能的解决方案: