#include <bitset>
#include <iostream>
int main()
{
std::bitset<8> b { 0b01101110 };
std::cout << b << " (first value)\n";
// bitset& operator >>= (std::size_t pos);
for (; b.any(); b >>= 1) {
while ( !b.test(0)) {
b >>= 1;
}
std::cout << b << '\n';
}
std::cout << b << " (last value)\n";
}
/*
run:
01101110 (initial value)
00110111
00011011
00001101
00000011
00000001
00000000 (final value)
*/