我知道这是可能使用整数或者按照下面的0和1组成的字符串初始化位集:
bitset<8> myByte (string("01011000")); // initialize from string
反正是有改变使用字符串初始化后,如上一个bitset的价值?
我知道这是可能使用整数或者按照下面的0和1组成的字符串初始化位集:
bitset<8> myByte (string("01011000")); // initialize from string
反正是有改变使用字符串初始化后,如上一个bitset的价值?
就像是
myByte = bitset<8>(string("01111001"));
应该做的伎俩。
是的,过载bitset::[]
操作者返回一个bitset::reference
类型,允许你正常布尔访问单位,例如:
myByte[0] = true;
myByte[6] = false;
你甚至有一些其他的功能 :
myByte[0].flip(); // Toggle from true to false and vice-versa
bool value = myByte[0]; // Read the value and convert to bool
myByte[0] = myByte[1]; // Copy value without intermediate conversions
编辑:没有重载=
操作员改变从一个字符串的单个位(以及它应该是一个字符),但你可以做到这一点:
myByte[0] = myString[0] == '1';
或:
myByte[0] = bitset<8>(string("00000001"))[0];
myByte[0] = bitset<8>(myBitString)[0];
相当于:
myByte[0] = bitset<1>(string("1"))[0];