& 與運算(按位與)
| 或運算 (按位或)
^ 異或運算 (按位異或)
~ 取反運算(按位取反)
<<(左移)、>>(右移)移位運算
介紹完二進位制中的基本位運算後,我們開始講解快速冪的演算法:
快速冪是基於二進位制的運算的一種快速演算法
如 3^7= 2187
7的二進位制為(0111)
3^1 =3 ^(2 ^ 0) = 3
3^2 =3 ^(2 ^ 1) = 9
3^4 =3 ^(2 ^ 2) = 81
3 ^13 ^23 ^4=2187
因為任意數都可以由2的次方組合出,因此得出當次方數的二進位制在該位為1時,就乘上底數的(2在當前位置的次方)次方
long long pow(int base,int m)
return ans;
}`
m為次方數
當base為m當前二進位制位置n底數的2^n的次方數
該演算法的複雜度為log(n)
leetcode 快速冪運算(位運算)
題目描述 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。實現 def mypow self,x float,n int float if x 0 return 0 res 1 if n 0...
基於位運算的快速冪與取餘運算
附上原題 題目描述 輸入b,p,k的值,求bp mod k的值。其中b,p,k為長整型數。輸入格式三個整數b,p,k.輸出格式輸出 bp mod k s s為運算結果 輸入輸出樣例 輸入 2 10 9 輸出 210 mod 9 7 該題需使用快速冪,以下是快速冪的方法 乙個數,例如 15 10 11...
位運算以及快速冪
1.原始碼,補碼,反碼 原始碼 原來的那個 反碼 正數的反碼是它本身,負數的反碼為 除了符號位之外,其他位取反。補碼 正數的補碼不變,負數的補碼 反碼 1 2.位運算 邏輯運算 and 只有兩個都為1,結果為1。xor 1xor1 0 0zor0 0 1xor0 1 0xor1 1 or 0or0 ...