В вашем коде была ошибка.Вы не можете получить доступ к элементу по индексу 4, так как размер bitset
был равен 4, потому что sizeof( int )
дал 4, что позволяет получить доступ только с 0-3.Что касается вашего вопроса, аргумент шаблона в скобках <> - это размер набора битов.В вашем случае 19 представляется более чем 4 битами, следовательно, результат был усечен.Измените аргумент на 5, вы должны получить ожидаемый результат.Кстати, bitset
уже перегружен оператор <<, поэтому вам на самом деле не нужно обходить весь массив для вывода результата.Это должно сделать работу: </p>
#include <iostream>
#include <bitset>
using namespace std;
int main() {
bitset<5> temp(19);
cout << temp;
return 0;
}