ビット演算を使用して、ビットマスクに従って2つのビットフィールドをマージすることは可能かどうか疑問に思います。たとえば、2つの値とビットマスクがあります。
char mask = 0x29; // 0010 1001
char a = 0x9; // 0000 1001 original value
char b = 0xE8; // 1110 1000 modified value
そして、ビットマスクに従って、bのビットをaの値に設定したいと思います。3ビットのみが影響を受けます。
char val = 0xC9; // 1100 1001 value
では、ビット演算だけでどうすればよいでしょうか。
前もって感謝します。