将值分配给来自多个 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);
如果你真的想用一条语句初始化(如果变量只有 0
和 1
值),我想你可以使用 bitshift
std::bitset<4> bitset((A << 3)|(B << 2)|(C << 1)|D);
我正在使用按以下方式创建的位集
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);
如果你真的想用一条语句初始化(如果变量只有 0
和 1
值),我想你可以使用 bitshift
std::bitset<4> bitset((A << 3)|(B << 2)|(C << 1)|D);