Присвоение значений для набора битов из нескольких типов int
Я использую набор битов, который создается следующим образом
std::bitset<4> bitset;
Я хотел знать, как я могу назначить значение для набора битов, если у меня есть целые числа со значениями A=0,B=1,C=1,D=0
?
Я прочитал, что я мог сделать это
bitset.set(0, false);
bitset.set(1, true);
bitset.set(2, true);
bitset.set(3, false);
Я хотел знать, есть ли более быстрый способ для этого? Желательно одно утверждение?
1 ответ
Примером
std::bitset<4> bitset(6UL);
Я хотел знать, как я могу назначить значение для набора битов, если у меня есть целые числа со значениями A=0,B=1,C=1,D=0?
Если у вас есть несколько переменных (одна переменная для каждого бита), я думаю, лучшее, что вы можете сделать, это назначить каждый бит, как вы знаете,
bitset.set(0, (A != 0));
bitset.set(1, (B != 0));
bitset.set(2, (C != 0));
bitset.set(3, (D != 0));
или, проще,
bitset.set(0, A);
bitset.set(1, B);
bitset.set(2, C);
bitset.set(3, D);
Если вы действительно хотите инициализировать с помощью одного оператора (и если переменная имеет только 0
а также 1
значения), я полагаю, вы можете использовать битовое смещение
std::bitset<4> bitset((A << 3)|(B << 2)|(C << 1)|D);