に従ってbit twiddling hacksウェブサイトによれば、操作マージビットは、aおよびbは、マスク
unsigned int a; // value to merge in non-masked bits
unsigned int b; // value to merge in masked bits
unsigned int mask; // 1 where bits from b should be selected; 0 where from a.
unsigned int r; // result of (a & ~mask) | (b & mask) goes here
r = a^((a^b) & mask);
マスクに係る2つのビット系列a
とb
をマージすることを可能にする配列します。私は不思議に思っていた:
- この操作に特定の/通常の名前があったかどうか?
- 特定のアセンブリ命令がこの命令セットに存在していたかどうか。
*「特定のアセンブリ命令がこの命令セットにこのオペレーションのために存在していたかどうか」* - 私は** ANDおよびXOR演算を持たない命令セットを知りません。 – IInspectable
しかし、いくつかのアーキテクチャでは、ハードウェアでこの操作を配線して、複数のアーキテクチャではなく単一の命令で実行することができます。 – Vincent
これは[Ternary Raster Operations](https://msdn.microsoft.com/en-us/library/dd145130.aspx)のかなり標準的な計算ですので、専用の回路が利用できると思います。 – IInspectable