Как назначить набор битов для вектора без знака?

Я использую вектор без знака, который имеет некоторые шестнадцатеричные значения.

   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 будет безвредным.)

Другие вопросы по тегам