0

我收到一个字节数组,并且必须从数组中删除所有 7Dh 和独占或​​以下 20h 字节才能恢复原始数据字节。

做这个的最好方式是什么?

4

1 回答 1

1

嗯,首先要注意的是你不能真正从数组中删除一个值,所以你不能在原地做;所以也许是这样的:

static byte[] Demungify(byte[] value)
{
    var result = new List<byte>(value.Length);
    bool xor = false;
    for (int i = 0; i < value.Length; i++)
    {
        byte b = value[i];
        if (xor)
        {
            b ^= 0x20;
            xor = false;
        }
        if (b == 0x7D)
        {
            xor = true; // xor the following byte
            continue; // skip this byte
        }
        result.Add(b);
    }
    return result.ToArray();
}
于 2013-06-21T12:22:19.517 回答