C語(yǔ)言基礎(chǔ)自學(xué)總結(jié)七位運(yùn)算_第1頁(yè)
C語(yǔ)言基礎(chǔ)自學(xué)總結(jié)七位運(yùn)算_第2頁(yè)
C語(yǔ)言基礎(chǔ)自學(xué)總結(jié)七位運(yùn)算_第3頁(yè)
C語(yǔ)言基礎(chǔ)自學(xué)總結(jié)七位運(yùn)算_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C語(yǔ)言基礎(chǔ)自學(xué)總結(jié)之七:位運(yùn)算概念:意思是:位運(yùn)算說(shuō)穿了,就是直接對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作。比如,and運(yùn)算原來(lái)是一個(gè)規(guī)律運(yùn)算符,但整數(shù)與整數(shù)之間也可以進(jìn)行and運(yùn)算。舉個(gè)例子,6的二進(jìn)制是110,11的二進(jìn)制是1011,那么6 and 11的結(jié)果就是2,它是二進(jìn)制對(duì)應(yīng)位進(jìn)行規(guī)律運(yùn)算的結(jié)果(0表示False,1表示True,空位都當(dāng)0處理)。針對(duì)一個(gè)變量的某一位操作就稱之位,位操作。一.位運(yùn)算符要點(diǎn):1. &:按為與2. |:按位或3. :按位異或4. :按位取反5. <<:左移6. >>:右移1. &: 按位與例子1:#include <

2、stdio.h>int main(void) printf("%dn",5&3);/5按位與3,是1,就是每一位進(jìn)行相與,與運(yùn)算:與上0還是0,1與上1為1,0與上1為0,用的是補(bǔ)碼相與, printf("%dn",5&-3);/是補(bǔ)碼的相與 return 0;2. :按位或例子1:#include <stdio.h>int main(void) printf("%dn",5|3);/或運(yùn)算就是對(duì)數(shù)字的每一個(gè)進(jìn)行或運(yùn)算,或運(yùn)算:每一位只要有一個(gè)1就是1,都是0時(shí)才為0,同樣是補(bǔ)碼運(yùn)算。 return

3、0;3. :按位異或例子1:#include <stdio.h>int main(void) printf("%dn",53);/異或每一位進(jìn)行異或,相同為假,不同為真。還是補(bǔ)碼進(jìn)行異或,return 0;4. : 按位取反例子1:#include <stdio.h>int main(void) printf("%dn",53);/進(jìn)行每一位取反,還是補(bǔ)碼取反 return 0;5. << :左移例子1:#include <stdio.h>int main(void) printf("%dn&qu

4、ot;,5<<1);/就是把”<<前面數(shù)字“每一位向左邊移“<<后邊數(shù)字“的位數(shù),也就把“5”的每一位,相左邊整體移1位,最后超出范圍的舍去,不夠的補(bǔ)0,左移1位相當(dāng)于乘以2,左移2位是乘以4,左移n位相當(dāng)于是乘以2的n次方 return 0;5. >> :右移例子1:#include <stdio.h>int main(void) printf("%dn",5>>1);/右移的方式移左移一樣,超出范圍的舍去,不夠的正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1,正數(shù)右移n位相當(dāng)于除以2的n次方,但是在不同的系統(tǒng)下,結(jié)果不一樣。

5、return 0;二. 位操作要點(diǎn):1、如果相求a的第n位(從0位起)是1還是0,就用a與上1左移n位,如果等于1第那位就上1,若果等0第n位就是0,a&=1<<n,2.如果想把a(bǔ)的第n位(從0位起)變成1,就用a或上1左移n位,a1<<n。3.如果想將a的第n位(從0位起)變成0,就用a與上1左移n位取反,a&(1<<n)。4.如果想將a的第n位(從0為起)取反,就用a異或上1左移n位,a=1<<n.例子1:#include <stdio.h>int main(void) int a=1; a|=1<<2;/把a(bǔ)的第2位變成1 printf("%dn",a); a&=(1<<2);/把a(bǔ)的第2位變成0 printf("%dn",a); a=a<<2;/把a(bǔ)的第2位取反 printf("%dn",a); if (a&=a<<2) pri

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論