我们有两个位图,例如bitmap1,bitmap2.both用malloc初始化(相同的参数)。分配Bitmap1如0010 0110,bitmap2分配1000 0001.我们如何在位图之间进行OR运算以产生1010 0111.另一方面,我们要将bitmap1的位设置为bit2中相应条目中的1。/ p>
我们不想使用某些方法,例如:
for(i=0;i<n;i++) bitmap1[i] ||= bitmap2[i];
因为这些方法比某些函数慢(例如memset,memcpy)。 任何指导都会有用。 编程语言是C / C ++
答案 0 :(得分:1)
您可以直接使用按位or
和xor
命令。
or_result = bitmap1 | bitmap2
xor_result = bitmap1 ^ bitmap2
如果这不起作用,因为您已经定义了bitmap1和bitmap2(不清楚,是struct
还是int
还是char
还是不太有用的东西像一个数组或类似于定义了operator[]
的类的东西?我们需要更多信息)然后你可能不得不改变你存储数据的方式。