-1

我们有两个位图,例如 bitmap1,bitmap2。都用 malloc(相同的参数)初始化。Bitmap1 被赋值为 0010 0110,bitmap2 被赋值为 1000 0001。我们如何在 bitmap 之间进行 OR 运算以得到 1010 0111。另一方面,我们想在 bit2 的相应条目中设置 bitmap1 的位为 1。

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

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

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

4

1 回答 1

1

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

or_result = bitmap1 | bitmap2

xor_result = bitmap1 ^ bitmap2

如果由于您如何定义 bitmap1 和 bitmap2 而这不起作用(尚不清楚,它是 astruct或 anint还是 achar或不太有用的东西,如数组或奇怪的东西,如已operator[]定义的类?我们需要更多信息)那么您可能必须更改存储数据的方式。

于 2012-07-16T02:40:15.477 回答