我正在vb.net中创建一个应用程序,它将使用字节数组作为缓冲区读取文件,并通过对数据进行编辑为它们创建奇偶校验文件... xored一个字节数组的最有效方法是什么?我虽然将字节数组转换为bitarray然后通过xor操作运行并将其转回字节数组,但这听起来像是一个非常昂贵的处理任务,我担心它可能会影响读/写速度... 有一个更好的方法吗?感谢...
为避免混淆: 该应用程序所做的是将文件的一半读取到位置1,将另一半读取到位置2,然后将奇偶校验(两个部分的xor)读取到位置3 ...
答案 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