Я использую побитовое для включения и выключения битов следующим образом:
unsigned char myChar = ...some value
myChar |= 0x01 << N // turn on the N-th bit
myChar &= ~(0x01 << N) //turn off the N-th bit
Теперь предположим, что значение N известно, но операция установки/снятия зависит от значения бита другого беззнакового символа. С этого момента я делаю так:
if ((otherChar & (0x01 << M)) != 0)
{
//M-th bit of otherChar is 1
myChar |= 0x01 << N;
}else
{
myChar &= ~(0x01 << N);
}
Это должна быть своего рода операция «перемещения бита» из беззнакового символа в другой.
Мой вопрос: есть ли способ сделать это без использования условного? (и без std::bitset тоже)
N-th bit
, это считается с нуля? - person Nawaz   schedule 23.06.2012