在vb.net中最有效的xor字节数组的方法

时间:2014-03-15 02:45:50

标签: arrays vb.net byte xor

我正在vb.net中创建一个应用程序,它将使用字节数组作为缓冲区读取文件,并通过对数据进行编辑为它们创建奇偶校验文件... xored一个字节数组的最有效方法是什么?我虽然将字节数组转换为bitarray然后通过xor操作运行并将其转回字节数组,但这听起来像是一个非常昂贵的处理任务,我担心它可能会影响读/写速度... 有一个更好的方法吗?感谢...

为避免混淆: 该应用程序所做的是将文件的一半读取到位置1,将另一半读取到位置2,然后将奇偶校验(两个部分的xor)读取到位置3 ...

2 个答案:

答案 0 :(得分:2)

要Xor两个字节数组,只需使用for循环和Xor operator

VB.Net的Xor将编译为CIL Xor opcode,随后应将JIT编译为非常快的x86 XOR processor instruction

与文件I / O的成本相比,Xor操作的成本可能微不足道。

答案 1 :(得分:0)

根据“高效”的含义,我认为你可以比简单的循环做得更好。我最初的做法是将处理分解为多个线程。所以它会更快完成。你知道输入数组的大小,因此知道输出数组,因此很容易划分负载,让每个线程填充结果的相应部分。

在代码项目上有一篇类似的C#文章。 Binary operations on byte arrays withparallelism