思路:code
初步查看很難一眼分析出表達式是什麼含義,咱們不妨舉例分析一下,假設 n = 5,二進制表示爲101,那麼 n-1 = 4,二進制表示爲100, 5 & 4 = 101 & 100 = 100 = 4 != 0,下面咱們來看更多的例子:class
5 & 4 = 101 & 100 = 4 6 & 5 = 110 & 101 = 4 7 & 6 = 111 & 110 = 6 8 & 7 = 1000 & 0111 = 0
咱們會發現要使表達式等於0,n-1必須使得n的n-1都向高位進1,也就是說知足一下條件:二進制
x + 1 = n x & n = 0
咱們來看看有那些數能知足要求:co
10 & 01 = 0 -------2^1 100 & 011 = 0 -------2^2 1000 & 0111 = 0 -------2^3 10000 & 01111 = 0 -------2^4 。。。。。。
所謂代碼((n & (n-1))== 0)的含義是n知足2的n次方
這種問題通常在於考察分析和解決問題的能力。