Много ноликов, мало единичек
Так вот, если добавить продолжу ещё пару постов про эти приколюхи, чтобы потом показать кое-что красивое, а пока надо на пальцах. В прошлый раз было что-то про прибавление единички, а теперь допустим я хочу пойти от вычитания. Ну и заодно с другой стороны, посмотреть куда меня может разотать это веселье, а не от "а чего бы я хотел"
Пусть есть число 0y10101000. Я могу отнять от него единичку от этого "пострадает" самая правая единичка, расплескавшись в единички поверх всех нулей справа от неё: 0y10100111. Если я возьму "И" с исходным числом:
x И (x-1)
то это даст мне 0y1010000. То есть это то способ "вырубить" правую единичку, окей
А что если взять "ИЛИ"?
x ИЛИ (x-1)
даст мне 0y10101111. То есть эта операция "включит" все единички справа от самой правой
Включит и вырубит я тут не зря использую, потому что если представить что это лампочки, которые горят если 1 и не горят если 0, то как минимум получается забавная гирлянда! Как максимум этой гирляндой можно передавать скрытые сигналы Бобу, и делать это так что Ева не услышит, но это уже немножко из другой оперы.
У нас почти всё готово чтобы обсудить восхитительную связь с другой областью, но его я уже покажу в следующей заметке, а пока можно добавить себе в базовые операции битовый НЕ (поменяет все нолики на единички) и придумать какие ещё штуки можно собрать из элементов выше (таким образом у нас будет +1, -1, ИЛИ, И, НЕ)