Given an integer, write a function to determine if it is a power of two.
題目意思:
給定一個整數,判斷是否是2的冪
解題思路:
如果一個整數是2的冪,則二進位制最高位為1,減去1後則最高位變為0,後面全部是1,相與判讀是否為零,注意負數和0,負數的最高位是1。
更多二進位制的問題可以參考《程式設計之美》中二進位制有多少個1,面試時容易問。
原始碼:
1 class Solution { 2 public: 3 bool isPowerOfTwo(int n) { 4 return (n > 0) && (n&(n-1)==0); 5 } 6 };