-1

bitmap1、bitmap2 などの 2 つのビットマップがあります。両方とも malloc (同じパラメーター) で初期化されています。Bitmap1 には 0010 0110 のように割り当て、bitmap2 には 1000 0001 を割り当てます。ビットマップ間の OR 演算を行って 1010 0111 を作成する方法。一方、bit2 の対応するエントリに 1 である bitmap1 のビットを設定します。

次のようなアプローチは使用したくありません。

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

これらのアプローチは一部の関数 (memset、memcpy など) よりも遅いためです。どんなガイダンスも役に立ちます。プログラミング言語は C/C++

4

1 に答える 1

1

orビットごとのコマンドとコマンドを直接使用できxorます。

or_result = bitmap1 | bitmap2

xor_result = bitmap1 ^ bitmap2

bitmap1 と bitmap2 をどのように定義したかが原因でこれが機能しない場合 (これは不明です。配列のようにあまり役に立たないものなのstructか、定義されたクラスのような奇妙なものなのか?もっと情報が必要です)その場合、おそらくデータの保存方法を変更する必要があります。intcharoperator[]

于 2012-07-16T02:40:15.477 に答える