(2)整數(shù)運(yùn)算

1.整數(shù)的表示

重要結(jié)論:任何整數(shù)都可以表示為2的不同冪次的和
2,8,16進(jìn)制與10進(jìn)制的相互轉(zhuǎn)換

2.整數(shù)的計(jì)算機(jī)運(yùn)算

對(duì)整數(shù)nb進(jìn)制展開(a_{k-1}...a_{1}a_{0})可以用如下偽代碼描述:

q=n;
k=0;
while(q≠0)\{
\ \ \ \ \ a_{k}=q\ mod\ b; 余數(shù)部分
\ \ \ \ \ q=q\ div\ b; 商部分
\ \ \ \ \ k=k+1;
}
return(a_{k-1}...a_{1}a_{0});

整數(shù)的加法:

image.png

image.png

image.png

但其實(shí)在硬件實(shí)現(xiàn)上由于高位的運(yùn)算必須等待低位的運(yùn)算完成,延遲時(shí)間長,故采用超前進(jìn)位加法器進(jìn)行并行運(yùn)算,其原理如下:


image.png

C_{i}表示第i位的進(jìn)位,A_{i}與B_{i}表示兩個(gè)數(shù)第i位的值

圖中乘法表示與,加法表示或


image.png

其實(shí)相當(dāng)于通過復(fù)雜的硬件,將未知量轉(zhuǎn)為已知量,每一位的運(yùn)算同時(shí)進(jìn)行,互不干擾,運(yùn)算時(shí)間固定,效率提升。

乘法運(yùn)算

image.png

image.png

image.png

更高效的算法:

image.png

image.png

偽代碼展示:
image.png

image.png

以上乘法算法并非最優(yōu)的方法,更多內(nèi)容參考https://zhuanlan.zhihu.com/p/63291883
同時(shí)在高級(jí)語言層面大多數(shù)情況不需要考慮位運(yùn)算的復(fù)雜度,同時(shí)現(xiàn)代計(jì)算機(jī)普遍配備著效率極高的乘法器,在機(jī)器指令層面可以高效執(zhí)行,這里僅僅作為一個(gè)算法的展示,在程序設(shè)計(jì)層面,并沒有實(shí)際意義

除法和取余運(yùn)算

image.png

image.png

模指數(shù)運(yùn)算

image.png

image.png

原文這里寫的比較簡略,我寫一些自己的理解:
由同余的性質(zhì),,
轉(zhuǎn)化為二進(jìn)制數(shù)對(duì)應(yīng)的也就是對(duì)
通過得知的結(jié)果計(jì)算出,對(duì)應(yīng)偽代碼
power=(power*power)mod m ;
而對(duì)于,其二進(jìn)制表示不一定都為1,所以對(duì)于是0的項(xiàng),要跳過,這也是if語句僅僅在時(shí)才執(zhí)行的意義。
image.png

image.png

對(duì)復(fù)雜度的分析如上,感覺mod部分省略了應(yīng)該是因?yàn)閮蓚€(gè)乘數(shù)都小于m,其乘積不會(huì)超出m很多,這部分的復(fù)雜度就可以忽略了。

3. 運(yùn)算的復(fù)雜度

大O表示法:S是一個(gè)指定的正整數(shù)集合,如果f,g為取正值的函數(shù),且對(duì)所有的x\in S有定義,則如果存在正常數(shù)K對(duì)所有充分大的x\in S均有f(x)<Kg(x),那么fS上是O(g)

以下是衍生的幾個(gè)性質(zhì):

  1. 如果fO(g)的,c是正常數(shù),則cfO(g)
  2. 如果f_{1}是O(g_{1})的,f_{2}是O(g_{2})的,則f_{1}+f_{2}是O(g_{1}+g_{2})

回顧整數(shù)乘法,對(duì)a,b有:


image.png

image.png

image.png

image.png

本節(jié)的算法java實(shí)現(xiàn)部分參見:位操作實(shí)現(xiàn)四則運(yùn)算

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容