C語言位運算分析_第1頁
C語言位運算分析_第2頁
C語言位運算分析_第3頁
C語言位運算分析_第4頁
C語言位運算分析_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C C語言位運算語言位運算 一、位運算符和位運算n位運算概述所謂“位運算”,是指按二進制位進行運算。n位運算的特點:運算按二進制逐位進行沒有借位和進位。n位運算量:整型(int,short,unsiged,long)/字符型(以補碼/ASCII碼形式存儲),不可為實型。位運算符:& | 一、位運算符和位運算n位運算符還可與賦值運算符相結(jié)合,進行位運算賦值操作。如: a&=b 等價于 a=a&b a=b 等價于 a=abn注意:位運算時的數(shù)據(jù)類型為char/int,分析時要化為二進制形式,但在程序中書寫及輸出結(jié)果時仍為char/int。位運算符的使用n按位與 &

2、(均為1時方為1)【例一】int main(int argc, char *argv)unsigned char a,b;printf(Enter a and b:);scanf(%o,%o,&a,&b);printf(a&b=%on,a&b);return 0; 計算 10 100 (a) & 11 110 (b) 10 100 01 100 (a) & 10 100 (b) 00 100 Enter a and b: 20,30a&b=20Enter a and b: 12,20a&b=4位運算符的使用n按位或 | (均為0時

3、方為0) 【例二】int main(int argc, char *argv) unsigned int a,b; printf(Enter a and b:); scanf(%o,%o,&a,&b); printf(a | b=%on,a|b); Enter a and b: 20,30a | b=30Enter a and b: 12,20a | b=32計算 010 000 (a) | 011 000 (b) 011 000 001 010 (a) | 010 000 (b) 011 010 位運算符的使用n按位異或 (二者相異方為1) 【例三】以下程序的功能是將a數(shù)據(jù)的

4、低4位取反。#include int main(int argc, char *argv)unsigned char a=0 x39, b=0 x0F;a=ab;printf(0 x%xn, a);return 0;答案:0 x36 計算 00111001 (a) 00001111 (b) 00110110 位運算符的使用n按位取反 (各位反轉(zhuǎn)) 【例四】 int main(int argc, char *argv) char a=3;int b=10;printf(a=%d,b=%dn,a,b);return 0; 結(jié)果:a=-4,b=-11 計算 a:補碼: 11111100原碼: 100

5、00100 b:補碼:11110101原碼:10001011位運算符的使用n左移運算 an 將a中各位向左移n位,右端補0,高位溢出丟棄。 例: a= an (可寫為a=n),相當于a2n(高位未溢出時) 【例五】以下程序的運行結(jié)果是 。int main(int argc, char *argv)unsigned int a=0 x3ef,b;b=a2;printf(%x,%xn,a,b);return 0;A)3ef,fb B) 3ef,fbc C) fbc,3ef D) fbc,fbc結(jié)果:B 位運算符的使用n左移運算 【例六】以下程序的運行結(jié)果是 。int main(int argc, char *argv)int a=12,b;b=0 x1f5 & a3;printf(%d,%dn,a,b);return 0;結(jié)果:12,96計算已知:0 x1f5為1 1111 0101且:a為1100 a an 將a中各位右移n位,溢出則舍棄。左端na為正數(shù)時(符號位為0),填0;na為負數(shù)時(符號位為1),填0或填1與系統(tǒng)有關(guān) 填0(邏輯右移) 填1(算術(shù)右移) TC使用算術(shù)右移位運算符的使用n右移運算 【例七】以下程序的運行結(jié)果是 。int main(int argc, char *argv)int a=9

溫馨提示

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

評論

0/150

提交評論