如何OR Xor和内存块

时间:2012-07-06 12:26:03

标签: c++ c bit-manipulation xor

我们有两个位图,例如bitmap1,bitmap2.both用malloc初始化(相同的参数)。分配Bitmap1如0010 0110,bitmap2分配1000 0001.我们如何在位图之间进行OR运算以产生1010 0111.另一方面,我们要将bitmap1的位设置为bit2中相应条目中的1。

我们不想使用某些方法,例如:

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

因为这些方法比某些函数慢(例如memset,memcpy)。 任何指导都会有用。 编程语言是C / C ++

1 个答案:

答案 0 :(得分:1)

您可以直接使用按位orxor命令。

or_result = bitmap1 | bitmap2

xor_result = bitmap1 ^ bitmap2

如果这不起作用,因为您已经定义了bitmap1和bitmap2(不清楚,是struct还是int还是char还是不太有用的东西像一个数组或类似于定义了operator[]的类的东西?我们需要更多信息)然后你可能不得不改变你存储数据的方式。