#include <cstddef>
#include <bitset>
#include <iostream>
template<std::size_t N>
std::bitset<N> strip_msb(std::bitset<N> bitarray)
{
for (std::size_t i = bitarray.size(); i--;)
if (bitarray[i])
{
bitarray.reset(i);
break;
}
return bitarray;
}
int main()
{
std::bitset<8> bitsetObject(137);
std::cout << bitsetObject.to_string() << '\n';
std::bitset<8> bitarray = strip_msb(bitsetObject);
std::cout << bitarray.to_string() << '\n';
}
I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnRlbXBsYXRlPHN0ZDo6c2l6ZV90IE4+CnN0ZDo6Yml0c2V0PE4+IHN0cmlwX21zYihzdGQ6OmJpdHNldDxOPiBiaXRhcnJheSkKewogICAgZm9yIChzdGQ6OnNpemVfdCBpID0gYml0YXJyYXkuc2l6ZSgpOyBpLS07KQogICAgICAgIGlmIChiaXRhcnJheVtpXSkKICAgICAgICB7CiAgICAgICAgICAgIGJpdGFycmF5LnJlc2V0KGkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICByZXR1cm4gYml0YXJyYXk7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpiaXRzZXQ8OD4gYml0c2V0T2JqZWN0KDEzNyk7CiAgICBzdGQ6OmNvdXQgPDwgYml0c2V0T2JqZWN0LnRvX3N0cmluZygpIDw8ICdcbic7CiAgICBzdGQ6OmJpdHNldDw4PiBiaXRhcnJheSA9IHN0cmlwX21zYihiaXRzZXRPYmplY3QpOwogICAgc3RkOjpjb3V0IDw8IGJpdGFycmF5LnRvX3N0cmluZygpIDw8ICdcbic7Cn0K