C - прикол
Как быстро проверить, является ли число степенью двойки?
На входе дано беззнаковое целое ненулевой разрядности, допускающее все операции языка C для типа unsigned. На выходе должно быть bool.
Циклы, ясное дело, не приветствуются. Мой ответ пока заскринен.
На входе дано беззнаковое целое ненулевой разрядности, допускающее все операции языка C для типа unsigned. На выходе должно быть bool.
Циклы, ясное дело, не приветствуются. Мой ответ пока заскринен.
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Соответственно !( x & (x - 1) ) - в числе нет битов, кроме младшего, что нам и требуется
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)
no subject
Оставляем первый бит получаем нечетное число,
не_нечетно => четное