← Все публикации

Много ноликов, мало единичек

Так вот, если добавить продолжу ещё пару постов про эти приколюхи, чтобы потом показать кое-что красивое, а пока надо на пальцах. В прошлый раз было что-то про прибавление единички, а теперь допустим я хочу пойти от вычитания. Ну и заодно с другой стороны, посмотреть куда меня может разотать это веселье, а не от "а чего бы я хотел"

Пусть есть число 0y10101000. Я могу отнять от него единичку от этого "пострадает" самая правая единичка, расплескавшись в единички поверх всех нулей справа от неё: 0y10100111. Если я возьму "И" с исходным числом:

x И (x-1)

то это даст мне 0y1010000. То есть это то способ "вырубить" правую единичку, окей

А что если взять "ИЛИ"?

x ИЛИ (x-1)

даст мне 0y10101111. То есть эта операция "включит" все единички справа от самой правой

Включит и вырубит я тут не зря использую, потому что если представить что это лампочки, которые горят если 1 и не горят если 0, то как минимум получается забавная гирлянда!

У нас почти всё готово чтобы обсудить восхитительную связь с другой областью, но его я уже покажу в следующей заметке, а пока можно добавить себе в базовые операции битовый НЕ (поменяет все нолики на единички) и придумать какие ещё штуки можно собрать из элементов выше (таким образом у нас будет +1, -1, ИЛИ, И, НЕ)

Этот же пост в Telegram ↗