このようにビットごとにオンとオフを切り替えるには、ビットごとに使用します。
unsigned char myChar = ...some value
myChar |= 0x01 << N // turn on the N-th bit
myChar &= ~(0x01 << N) //turn off the N-th bit
ここで、N の値はわかっているが、設定/設定解除操作は別の unsigned char のビットの値に依存するとします。今以来、私はこのようにしています:
if ((otherChar & (0x01 << M)) != 0)
{
//M-th bit of otherChar is 1
myChar |= 0x01 << N;
}else
{
myChar &= ~(0x01 << N);
}
これは、unsigned char から別の char への一種の「ビットの移動」操作である必要があります。
私の質問:条件を使用せずにこれを行う方法はありますか? (そして std::bitset もなし)