Можно ли преобразовать 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 );