C - прикол
Как быстро проверить, является ли число степенью двойки?
На входе дано беззнаковое целое ненулевой разрядности, допускающее все операции языка C для типа unsigned. На выходе должно быть bool.
Циклы, ясное дело, не приветствуются. Мой ответ пока заскринен.
На входе дано беззнаковое целое ненулевой разрядности, допускающее все операции языка C для типа unsigned. На выходе должно быть bool.
Циклы, ясное дело, не приветствуются. Мой ответ пока заскринен.
no subject
100 && (100 & 011) = false
Наверное имелось в виду: value && !(value & (value-1))
Но поюзанное свойство мне очень понравилось. Действительно, тольуо у степени двойки при декременте обнуляется старший бит. У прочих чисел он остаётся установленным. Респект.
no subject
no subject
no subject