有兩種方法
方法一:因為二是二的次方,所以轉成二進位後1的數量只有一個,對每個位置逐一比對檢查1的總數量
方法二:可以從二的次方觀察規律,2(10)、4(100)、16(1000)、64(100000)。如果n是二的次方,n-1就會像是3(11)、7(111)、15(1111)。所以只要拿n和(n-1)去做位元運算&(and)結果為0,n就是二的次方。唯一的例外就是0。所以判別法就是(n&&!(n&(n-1))) = 1(是二的次方),0(不是二的次方)