Непонятная битовая операция

291
13 мая 2017, 21:07

Что может означать операция i = i & (i+1) в реализации дерева отрезков?

Answer 1

Превращает все завершающие единичные биты в нулевые; если таковых нет - просто возвращает исходное значение.

i         0011011111  00101100100  11010101000
i+1       0011100000  00101100101  11010101001
i&(i+1)   0011000000  00101100100  11010101000

Для чего именно это сделано в конкретной программе - это уж смотрите, где и как это действие использовано...

READ ALSO
C++ теорема синусов [требует правки]

C++ теорема синусов [требует правки]

Здравствуйте! У меня есть задание написать дочерний класс Треугольник от класса УголКласс Угол уже готов, но у меня есть задание: имея класс...

246
Отсутствует компонент TDBGrid в Embarcadero C++ Builder 10.2

Отсутствует компонент TDBGrid в Embarcadero C++ Builder 10.2

Не удаётся найти компонент TDBGrid в Embarcadero C++ Builder 102

416
Как исправить ошибку undefined reference to

Как исправить ошибку undefined reference to

Мне нужно использовать готовый C++ класс CatalogИспользуя статью сделал начальную настройку проекта

504
Как перевернуть на 180 градусов RGB в буфере?

Как перевернуть на 180 градусов RGB в буфере?

Некоторые веб-камеры снимают в перевёрнутом режимеВ программе нужно переворачивать такие камеры

301