Как назначить набор битов для вектора без знака?
Я использую вектор без знака, который имеет некоторые шестнадцатеричные значения.
std::vector<unsigned char> sync;
sync.push_back(0x50);
sync.push_back(0x51);
sync.push_back(0x52);
sync.push_back(0x53);
Затем, используя набор битов, я "преобразую" синхронизацию [3] в 8-битное представление. Это потому, что мне нужно искажать / переключать любой случайный бит в нем.
srand(time(NULL));
int bitsetIndex= random()%8;
std::bitset<8> manipulator(v[3]); //v is the vector argument which takes "sync" vector
//by reference
manipulator.flip(bitsetIndex);
Поскольку я передаю свой вектор по ссылке, я хотел внести в него изменения. то есть, какие бы изменения я ни сделал в своем наборе битов, я тоже хотел зафиксировать это в векторе. Однако я не уверен, как преобразовать набор битов в неподписанный символ и как назначить его для моего вектора, чтобы обновить мою векторную синхронизацию.
1 ответ
Вызов manipulator.to_ulong()
, (Сужение конверсии к вашему unsigned char
будет безвредным.)