C++ 如何使用或异或和内存块

C++ 如何使用或异或和内存块,c++,c,bit-manipulation,xor,C++,C,Bit Manipulation,Xor,我们有两个位图,如bitmap1、bitmap2。它们都是用malloc(相同的参数)初始化的。Bitmap1分配为0010 0110,bitmap2分配为1000 0001。我们如何在位图之间执行或操作以生成1010 0111。另一方面,我们希望设置bitmap1的位,这些位在bit2的相应条目中为1 我们不希望使用以下方法: for(i=0;i<n;i++) bitmap1[i] ||= bitmap2[i]; 对于(i=0;i您可以直接使用按位或和xor命令 或_result=bi

我们有两个位图,如bitmap1、bitmap2。它们都是用malloc(相同的参数)初始化的。Bitmap1分配为0010 0110,bitmap2分配为1000 0001。我们如何在位图之间执行或操作以生成1010 0111。另一方面,我们希望设置bitmap1的位,这些位在bit2的相应条目中为1

我们不希望使用以下方法:

for(i=0;i<n;i++) bitmap1[i] ||= bitmap2[i];

对于(i=0;i您可以直接使用按位
xor
命令

或_result=bitmap1 | bitmap2

xor\u result=bitmap1^bitmap2


如果由于您如何定义bitmap1和bitmap2(尚不清楚,它是一个
struct
还是
int
char
或一些不太有用的东西,如数组或一些奇怪的东西,如定义了
运算符[]
的类,我们需要更多信息)然后,您可能必须更改存储数据的方式。

请使用您正在使用的语言进行标记,而不是像“logical”这样无用的模糊标记。是什么让您认为使用for循环和位运算符的直接方法存在任何重大性能问题?我想在操作系统源代码中使用此程序。因此,我需要使用更快的方法。