位運算以及快速冪

2022-08-09 20:51:17 字數 630 閱讀 8021

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...