Refer:https://www.cnblogs.com/doublesand/p/9626941.html
快速判斷一個數n是否為2的幂
(n & n - 1) == 0
将2的幂次方寫成二進制形式後,很容易就會發現有一個特點:二進制中隻有一個1,并且1後面跟了n個0。如果将這個數減去1後會發現,僅有的那個1會變為0,而原來的那n個0會變為1;是以将原來的數與減去1後的數字進行與運算後會發現為零。
Refer:https://www.cnblogs.com/doublesand/p/9626941.html
快速判斷一個數n是否為2的幂
(n & n - 1) == 0
将2的幂次方寫成二進制形式後,很容易就會發現有一個特點:二進制中隻有一個1,并且1後面跟了n個0。如果将這個數減去1後會發現,僅有的那個1會變為0,而原來的那n個0會變為1;是以将原來的數與減去1後的數字進行與運算後會發現為零。