Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Четное число имеет вид: *1, то есть последний бит этого числа неотрицательный.
- // Значит что мы можем провести побитовую коньюнкцию(побитовое И) с числом 1
- // и получить 2 исхода:
- // *00000 или *00001, что будет равно 0 или 1 в десятичной системе счисления соответственно.
- //
- // Пример функции реализующий этот подход:
- bool isEven(int x){
- return x&1;
- }
- // Главный плюс функции это её эффективность, однако у нее есть и существенный минус:
- // её сложно понять и поддерживать в дальнейшем.
- //
- // Если бы в реальности стояла задача написать функцию с таким функционалом,
- // я бы написал следующий код:
- inline bool isEven(const int & x){
- return x%2;
- }
- // В первую очередь я изменил аргумент функции на константную ссылку на int.
- // Это будет более эффективно рассходывать память, так как переменная не копируется,
- // но при этом можно использовать как l-value, так и r-value аргументы.
- // Также я добавил ключевое слово inline, которое указывает компилятору,
- // что тело данной функции можно встроить, если компилятор посчитает это
- // более эффективным, нежели её вызов.
- //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement