Можно ли преобразовать bitset в char в c++?

У меня есть bitset v8 и его значение что-то вроде "11001101", как я могу преобразовать его в char? Мне нужно одно письмо. Как буква " f " =01100110.

P. S. Спасибо за помощь. Мне нужно было это, чтобы проиллюстрировать случайные ошибки в битах. Например, без ошибки f, а с ошибкой что-то вроде ♥ и так далее со всем текстом в файле. В тексте вы можете ясно видеть такие ошибки.

1 ответов


unsigned long i = mybits.to_ulong(); 
unsigned char c = static_cast<unsigned char>( i ); // simplest -- no checks for 8 bit bitsets

что-то в этом роде должно работать. Обратите внимание, что битовое поле может содержать значение, которое нельзя представить с помощью простого char (это реализация, определенная, подписана она или нет) -- поэтому вы всегда должны проверять перед литьем.

char c;
if (i <= CHAR_MAX) 
c = static_cast<char>( i );