— Привіт, Аміго!
І ще одна маленька лекція про побітових операторів.
Знаєш же, що крім логічних операторів AND(&&), OR(||) і NOT(!), є ще побітові AND(&), OR(|), NOT(~), XOR( ^)?
— Ага. Свого часу Білаабо давав дуже гарну лекцію на цю тему.
— Так от щодо цих операторів у мене є дві новини:
По-перше, їх можна застосовувати до boolean-змінних, крім оператора NOT(~), так само, як і логічні оператори.
По-друге, при їх застосуванні лінивих обчислень не відбувається.
Дивись приклад:
Код | Аналог |
---|---|
|
|
Ліва частина компактніша за праву?
— Ага.
— А за змістом така сама?
— Ага.
— Отож і воно. А ось тепер такий самий вислів із використанням побітових операцій:
Код | Аналог |
---|---|
|
|
Тобто. код той самий, але абсолютно всі обчислення будуть зроблені.
Зверніть увагу, що якщо a дорівнює null, то при обчисленні c2 буде викинуто виняток!
— Ага. Тепер картина зрозуміліша.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ