1.原始碼,補碼,反碼
原始碼:原來的那個 反碼:正數的反碼是它本身,負數的反碼為 除了符號位之外,其他位取反。 補碼:正數的補碼不變,負數的補碼=反碼+1;
2.位運算
邏輯運算:
&& and: 只有兩個都為1,結果為1。
^ xor: 1xor1=0 0zor0=0; 1xor0=1; 0xor1=1;
|| or: 0or0=0; 0or1=1; 1or0=0; 1or1=1;
位運算:
1.冪取模
要求a的n次方 mod p
方法:折半遞迴
1.若n為偶數,計算a的n/2次方的平方 2.若a為奇數,求a的n/2次方的平方,在乘a
typedef long long ll;
ll mod;
ll qpow(ll a, ll n)//計算a^n % mod
return re % mod;
}
感謝閱讀
**參考 感謝!!
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...
快速冪模版與位運算
powered by ab in 局外人 include typedef long long ll using namespace std const ll maxn 5e6 10 char buf 1 21 p1 buf,p2 buf inline ll getc inline ll read w...
整數快速冪以及大數取模快速冪運算
最近寫到快速冪的演算法題,就比如313,按照之前的做法無非不是寫個迴圈模擬計算,對於指數較小的情況的確可以完成,倘若指數過於大,程式會超時,此時就需要運用到快速冪的方法 正常情況下的計算時間複雜程度為o n a n a a a a n個a 但a和n過於大時我們可以換種思路,我們知道a n a m a...