2012-07-06 20 views
0

塊有兩個位圖,如bitmap1,bitmap2.both使用malloc(相同的參數)初始化。 Bitmap1被賦值爲0010 0110,bitmap2被賦值爲1000 0001.我們如何在位圖之間進行OR操作來創建1010 0111.另一方面,我們想要在bit2的相應條目中設置位1的位爲1。我們如何OR XOR和內存

我們不希望使用一些方法,比如:因爲這些方法比一些功能更慢

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

(例如memset的,memcpy的)。 任何指導都很有用。 編程語言是C/C++

+1

請標記您正在使用的語言,而不是像「邏輯」這樣無用的模糊標籤。 – geoffspear 2012-07-06 12:33:16

+0

什麼讓你認爲使用for循環和按位運算符的直接方法有任何顯着的性能問題? – 2012-07-06 13:58:28

+0

我想在OS源代碼中使用此程序。所以我需要使用更快的方法。 – farzin 2012-07-16 02:31:36

回答

1

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

or_result = bitmap1 | bitmap2

xor_result = bitmap1^bitmap2

如果這不會因爲你是如何定義你的bitmap1和bitmap2(這是不明確的工作,就是它像一個structintchar什麼用處不大一個數組或類似奇怪的東西,定義了一個operator[]?我們需要更多信息),那麼您可能需要更改存儲數據的方式。

相關問題