Если у меня есть двоичное число, скажем, x = 00010000
, я могу установить все биты до самого высокого и только установленного бита, выполнив y = x | (x - 1)
, что приведет к y = 00011111
.
Как я могу добиться того же результата, если установлено несколько битов, например. x = 00010101
?