Присвоение значений для набора битов из нескольких типов 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);
Другие вопросы по тегам