Битсет в C ++, про постоянно добавляемый

Я хочу добавить 1 значение в битовый набор, пока он не переполнится, мне интересно, как это сделать, например:

bitset <20> foo; (foo = 00000 00000 00000 00000), как мы можем реализовать эту функцию, постоянно добавлять одну

00000 00000 00000 00000 00000> 00000 00000 00000 00000 00001> 00000 00000 00000 00000> 00010> 00000 00000 00000 00000 000011 до его переполнения?

Я думаю о двух способах;

foo.to_ulong();

как конвертировать unsigned long обратно в bitset снова? Документация C ++ указывает, что это возможно, но в библиотеке я вижу только набор битов (unsigned long val), который создает новый набор битов

2. как-то битные операции, оба застряли, нужна помощь

Ответы на вопрос(2)

Ваш ответ на вопрос