Если число является степенью 2
, то в двоичном представлении есть только одна 1
цифра.Т.е. 10
, 100
, 100000
и т. Д. Если вы вычтете одно, вы получите целое 1
.как 10-1=1
, 100-1=11
и т. д. Поэтому, если вы сделаете x&(x-1)
, вы получите все нули.Таким образом, вы можете использовать приведенную ниже формулу
x && (!(x&(x-1)))
Первый х в приведенном ниже выражении относится к случаю, когда x
равно 0
.