Если знать как правильно работают условные операторы ? и :, выражение с которыми имеет такой вид:
условие ? выражение если условие выполнилось : выражение если условие не выполнилось
то можно легко понять, что следующий код стоит рассматривать как несколько условных операторов в одном:
a=[a!=0]?
[(a>1)?(a>>2):(a<<2)] <-если a не равно 0
:
[(a<1)?(a<<2):(a>>2)]; <-если а равно 0
и в конце переменной а присвоится значение (a>>2), это значит, что мы сдвигаем 5 (в двоичном 0101) на 2 бита и получаем 0001,а это у нас равно 1.
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать