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



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

为了避免混淆:应用程序所做的是将一半文件读取到位置1,另一半读取到位置2,然后对位置3进行奇偶校验(这两个部分的异或)…

对于两个字节数组,只需使用for循环和异操作符即可。

VB。Net的Xor将编译为CIL Xor操作码,该操作码随后应被JIT编译为非常快的x86 Xor处理器指令。

与文件I/O的成本相比,Xor操作的成本可能可以忽略不计。

根据您对"高效"的定义,我认为您可以比简单的循环做得更好。我最初的想法是将处理分解为多个线程。所以它会完成得更快。你知道输入数组的大小,也知道输出数组的大小,这样就很容易划分负载,让每个线程填充结果的适当部分。

有一篇关于代码项目的c#文章做了类似的事情。具有并行性的字节数组二进制操作

最新更新