将值分配给来自多个 int 类型的位集

assigning values to a bitset from multiple int types

我正在使用按以下方式创建的位集

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);

我想知道是否有更快的方法?最好是单个语句 ?

举例

std::bitset<4> bitset(6UL);

I wanted to know how I can assign a value to a bitset if I have ints with the values 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);

如果你真的想用一条语句初始化(如果变量只有 01 值),我想你可以使用 bitshift

std::bitset<4> bitset((A << 3)|(B << 2)|(C << 1)|D);