C++ 如何使用或异或和内存块
我们有两个位图,如bitmap1、bitmap2。它们都是用malloc(相同的参数)初始化的。Bitmap1分配为0010 0110,bitmap2分配为1000 0001。我们如何在位图之间执行或操作以生成1010 0111。另一方面,我们希望设置bitmap1的位,这些位在bit2的相应条目中为1 我们不希望使用以下方法: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
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循环和位运算符的直接方法存在任何重大性能问题?我想在操作系统源代码中使用此程序。因此,我需要使用更快的方法。