过滤出具有特定值的字节,并对下一个字节进行异或运算
本文关键字:字节 下一个 运算 过滤 | 更新日期: 2023-09-27 18:19:34
我收到一个字节数组,必须从数组中删除所有7Dh,并用20h排除或排除后面的字节,才能恢复原始数据字节。
最好的方法是什么?
首先要注意的是,您不能真正从数组中移除值,因此不能在原地执行;所以也许是这样的:
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();
}