a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言用位運算實現(xiàn)加法運算

2020-02-24 14:38:19
字體:
供稿:網(wǎng)友

用位運算實現(xiàn)加法也就是計算機用二進制進行運算,32位的CPU只能表示32位內(nèi)的數(shù),這里先用1位數(shù)的加法來進行,在不考慮進位的基礎(chǔ)上,如下


1 + 1 = 0
1 + 0 = 1
0 + 1 = 1
0 + 0 = 0


很明顯這幾個表達式可以用位運算的“^”來代替,如下

?

?


1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0


這樣我們就完成了簡單的一位數(shù)加法,那么要進行二位的加法,這個方法可行不可行呢?肯定是不行的,矛盾就在于,如何去
獲取進位?要獲取進位我們可以如下思考:

?

?


0 + 0 = 0
1 + 0 = 0
0 + 1 = 0
1 + 1 = 1


//換個角度看就是這樣

?

?


0 & 0 = 不進位
1 & 0 = 不進位
0 & 1 = 不進位
1 & 1 = 進位


正好,在位運算中,我們用“

?

?


//進位可以用如下表示:
(x&y)


到這里,我們基本上擁有了這樣兩個表達式

?

?


x^y //執(zhí)行加法
(x&y)


我們來做個2位數(shù)的加法,在不考慮進位的情況下

?

?


11+01 = 100 // 本來的算法
// 用推算的表達式計算
11 ^ 01 = 10
(11 & 01) //到這里 我們用普通的加法去運算這兩個數(shù)的時候就可以得到 10 + 10 = 100
//但是我們不需要加法,所以要想別的方法,如果讓兩個數(shù)再按剛才的算法計算一次呢
10 ^ 10 = 00
(10 & 10)


到這里基本上就得出結(jié)論了,其實后面的那個 “00” 已經(jīng)不用再去計算了,因為第一個表達式就已經(jīng)算出了結(jié)果。
繼續(xù)推理可以得出三位數(shù)的加法只需重復(fù)的計算三次得到第一個表達式的值就是計算出來的結(jié)果。
c代碼如下:

?

?


int Add(int a,int b)
{
int jw=a&b;
int jg=a^b;
while(jw)
{
int t_a=jg;
int t_b=jw jw=t_a&t_b;
jg=t_a^t_b;
}
return jg;
}


計算機本質(zhì)是二進制運算,許多高人和天書都展示了如何用位運算來實現(xiàn)讓人糾結(jié)卻又驚奇的事情。在豆瓣上看到一篇日志描述如何用位運算實現(xiàn)乘法,其實問題解決的關(guān)鍵是如何用位運算實現(xiàn)加法。覺得原文敘述不夠精確,現(xiàn)總結(jié)如下。
定理1:設(shè)a,b為兩個二進制數(shù),則a+b = a^b + (a&b) 證明:a^b是不考慮進位時加法結(jié)果。當二進制位同時為1時,才有進位,因此 (a&b) 定理2:使用定理1可以實現(xiàn)只用位運算進行加法運算。
證明:利用定理1中的等式不停對自身進行迭代。每迭代一次,進位補償右邊就多一位0,因此最多需要加數(shù)二進制位長度次迭代,進位補償就變?yōu)?,這時運算結(jié)束。

以上就是C語言用位運算實現(xiàn)加法運算的全部內(nèi)容,更多內(nèi)容請繼續(xù)關(guān)注武林技術(shù)頻道網(wǎng)站!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 欧美理论影院 | 欧美日韩一区二区三区四区 | www久久久| 一区二区三区日韩 | 日韩国产中文字幕 | 91久久久久 | 亚洲男人天堂2024 | 亚洲成人综合在线 | 精品国产一区在线 | 第一色在线 | 国产在线色 | 欧美日韩成人在线 | 亚洲爽爽| 国产免费视频一区二区三区 | 日韩精品极品在线观看 | 亚洲不卡视频 | 日韩一区在线观看视频 | 久久久国产精品入口麻豆 | 久久99精品国产自在现线 | 伊人狠狠干 | 日韩成人免费在线 | 欧洲中文字幕 | 青青久久av| 一区二区三区在线 | 欧 | 黄色大片视频 | 黄色一级视频 | 欧美午夜一区二区三区免费大片 | 成人久久久精品乱码一区二区三区 | 毛片91| 亚洲一区成人 | 亚洲成人综合在线 | 四虎影城 | 极品白嫩少妇无套内谢 | 在线欧美视频 | www.黄网 | 午夜成人在线视频 | 国产91av在线 | 亚洲午夜精品一区二区三区他趣 | 亚洲国产一区二区三区四区 | 日韩成人在线看 | 视频一区 中文字幕 |