тогда получим неравенство:
В этом неравенстве в середине стоит обнуление младших
разрядов в двоичной записи числа
.
А слева
- одна лишь старшая единица двоичной записи числа
и
- уменьшенный на 1 номер старшей единицы в двоичной записи
.
Значит левое неравенство выполняется всегда пока среднее число не обнулилось (
, т.е.
не обнулило старшую единицу).
Справа стоит та же старшая единица, домноженная на некое число немногим больше
. Соответственно правое неравенство точно выполняется при
(т.е. в числе
обнуление всех двоичных цифр кроме самой старшей) и любом
, плюс если
, то
может быть
(лишь для правого неравенства, не для левого), плюс при
правое неравенство выполняется только для
(в этом случае все младшие биты в правом числе и так нулевые, а неравенство строгое),
плюс при правое неравенство выполняется для (тут ошибся).
В итоге получается что
может принимать значения от номера младшей единицы в двоичной записи числа
до номера старшей единицы минус 1 - только при этих условиях число в середине не обнуляется и в то же время становится меньше правого числа.
Почему это отличается (если отличается) от данных
worm2 мне непонятно, скорее всего неравенства не равносильные.
PS. Я везде подразумевал что
- округление до целого вниз (к
), как в математике, а не округление к ближайшему.
-- 09.08.2019, 19:44 -- может принимать значения от номера младшей единицы в двоичной записи числа
А максимальным эта величина будет вероятно при
, т.е. когда
равно степени
. Тогда
.