版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——自考計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)11
第九章
位運(yùn)算與預(yù)處理
第一節(jié)位運(yùn)算其次節(jié)宏定義第三節(jié)文件包含第四節(jié)預(yù)編譯
共26頁
第2頁
運(yùn)算符
()括號(hào)單目運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符規(guī)律運(yùn)算符條件運(yùn)算符
改變表達(dá)式中的優(yōu)先級關(guān)系
++;--;!;-(負(fù)),*(指針),(取地址)*;/;%+;;;=;===;!=||?:
高
賦值運(yùn)算符逗號(hào)運(yùn)算符
=;+=;-=;*=;/=;%=,低
位運(yùn)算符
將參與運(yùn)算的兩個(gè)操作數(shù),按對應(yīng)的二進(jìn)制位分別進(jìn)行以下運(yùn)算
按位與
|按位或
~
^
位左移
位右移
按位取反按位異或
2)算術(shù)表達(dá)式的格式:~是單目運(yùn)算符:~a其余都是雙目運(yùn)算符:ab,a|b,a2,b23)操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)轉(zhuǎn)化時(shí)右端對齊,假使位數(shù)不夠,左邊補(bǔ)符號(hào)位,即正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1.inta=3,b=5,d;d=ab?
a00000011
b00000101
2)再針對每個(gè)二進(jìn)制位進(jìn)行位運(yùn)算3)運(yùn)算后的結(jié)果轉(zhuǎn)回為十進(jìn)制
位運(yùn)算符
操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)2)再針對每個(gè)二進(jìn)制位進(jìn)行位運(yùn)算3)結(jié)果轉(zhuǎn)回十進(jìn)制
1.按位與--按位與運(yùn)算:假使兩個(gè)對應(yīng)的位都是1,則該位為1,否則為0.inta=3,b=5,d;d=ab?
0000001110000010100000001
1)將a,b轉(zhuǎn)化二進(jìn)制2)進(jìn)行位與運(yùn)算3)將結(jié)果轉(zhuǎn)回十進(jìn)制
位運(yùn)算符
操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)2)再針對每個(gè)二進(jìn)制位進(jìn)行運(yùn)算3)結(jié)果轉(zhuǎn)回十進(jìn)制
2.按位或--|按位或運(yùn)算:假使兩個(gè)對應(yīng)的位有一個(gè)1,則該位為1,否則為0.inta=3,b=5,d;d=a|b?
000000117|0000010100000111
1)將a,b轉(zhuǎn)化二進(jìn)制2)進(jìn)行位或運(yùn)算3)將結(jié)果轉(zhuǎn)回十進(jìn)制
位運(yùn)算符
操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)2)再針對每個(gè)二進(jìn)制位進(jìn)行運(yùn)算3)結(jié)果轉(zhuǎn)回十進(jìn)制
3.按位異或--^按位異或運(yùn)算:假使兩個(gè)對應(yīng)的位不同,則為1,否則為0.00000011inta=3,b=5,d;d=a^b?
6
~
0000010100000110
1)將a轉(zhuǎn)化二進(jìn)制2)進(jìn)行位異或運(yùn)算3)將結(jié)果轉(zhuǎn)回十進(jìn)制
位運(yùn)算符
操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)2)再針對每個(gè)二進(jìn)制位進(jìn)行運(yùn)算3)結(jié)果轉(zhuǎn)回十進(jìn)制
4.按位取反--~按位取反運(yùn)算:假使位為1,則結(jié)果為0,假使位為0,結(jié)果為1.注意:單目運(yùn)算符,格式:~a~inta=5,b;b=~a?
0000010111111010符號(hào)位為1,說明是負(fù)數(shù)
-6轉(zhuǎn)十進(jìn)制
1)將a轉(zhuǎn)化二進(jìn)制2)進(jìn)行位取反運(yùn)算除符號(hào)外,位取反100001013)將結(jié)果轉(zhuǎn)回十進(jìn)制末尾+110000110
位運(yùn)算符
操作步驟1)將運(yùn)算分量轉(zhuǎn)化為二進(jìn)制(默認(rèn)8位二進(jìn)制)2)再針對每個(gè)二進(jìn)制位進(jìn)行運(yùn)算3)結(jié)果轉(zhuǎn)回十進(jìn)制
5.位左移()和位右移()將一個(gè)數(shù)的全部二進(jìn)制位左移或右移若干位.格式:左邊是移位處理的對象,右邊是整數(shù)表達(dá)式,表
示移動(dòng)多少位a2a2201
00000101
inta=5,b;b=a2?b=a2;
a20001010000000101a200000001
1)左移時(shí),低位補(bǔ)02)右移時(shí),對于正數(shù),高位補(bǔ)0,對于負(fù)數(shù),高位補(bǔ)1
位運(yùn)算符
將參與運(yùn)算的兩個(gè)操作數(shù),按對應(yīng)的二進(jìn)制位分別進(jìn)行以下運(yùn)算
~按位取反
按位與
|
^
位左移
位右移
按位或按位異或
3)優(yōu)先級~取反,位移位與^位異或|位或4)結(jié)合性:取反是自右向左其余是自左向右注意:1)位運(yùn)算都只能針對整數(shù)和字符型數(shù)據(jù)2323.0錯(cuò)誤2)位運(yùn)算和賦值運(yùn)算符一起構(gòu)成復(fù)合賦值運(yùn)算符=,|=,^=,=,=
位運(yùn)算符舉例:00000011inta=3,b=11;表達(dá)式~ab結(jié)果?8~a11111100000010110000100000000011inta=3,b=11;表達(dá)式a|b結(jié)果?|0000101100001011共26頁第11頁
運(yùn)算符高
()括號(hào)單目運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符規(guī)律運(yùn)算符條件運(yùn)算符
改變表達(dá)式中的優(yōu)先級關(guān)系
++;--;!;-(負(fù)),*(指針),(取地址),~*;/;%+;-,;;=;===;!=^|||?:
賦值運(yùn)算符逗號(hào)運(yùn)算符
=;+=;-=;*=;/=;%=,低
預(yù)處理C語言程序的執(zhí)行過程:編寫源程序(.c)編譯程序(.obj)鏈接程序可執(zhí)行程序(.exe)執(zhí)行程序,獲得結(jié)果
預(yù)處理:程序被編譯以前,編譯系統(tǒng)會(huì)先對程序中三種特別的命令進(jìn)行〞預(yù)先處理〞,然后將預(yù)處理結(jié)果和源程序進(jìn)行編譯.宏定義預(yù)處理
#define#include
用一個(gè)名字代替一個(gè)字符串使用庫函數(shù)時(shí),包含相應(yīng)頭文件
文件包含條件編譯
#ifdef….#endif依照不同條件選擇編譯不同的程序部分
預(yù)處理宏的使用:包括宏定義、宏調(diào)用和宏展開三部分1)編程人員為了縮短編寫代碼的長度,用宏定義說明用一個(gè)宏名代替一個(gè)長的字符串。例如:#definePI3.14159262)在編程時(shí),用到長字符串的地方用宏名替代,這個(gè)過程稱為例如:S=PI*r*r;宏調(diào)用。3)在編譯前,系統(tǒng)如何理解這些宏調(diào)用?根據(jù)宏定義,系統(tǒng)自動(dòng)將所有宏名換回長字符串,這個(gè)過程稱為宏展開.我們閱讀別人編寫的宏調(diào)用也做這樣的替換舉例:#definePI3.1415926main(){intr=3;doubles,d;d=2*PI*r;/*圓周長*/S=PI*r*r;/*面積*/}main(){intr=3;doubles,d;d=2*3.1415926*r;/*圓周長*/S=3.1415926*r*r;/*面積*/}
預(yù)編譯
宏展開
預(yù)處理使用宏的意義:
舉例:#definePI3.1415926main(){intr=3;doubles,d;d=2*PI*r;/*圓周長*/S=PI*r*r;/*面積*/}
優(yōu)點(diǎn):1)用短小有意義的名字代替一長串的字符,減少輸入量2)便于修改.修改一個(gè)地方,則全部修改
預(yù)處理宏分為:無參宏和帶參宏
1)無參宏定義:告訴系統(tǒng),用標(biāo)識(shí)符來表示一個(gè)字符序列宏定義命令宏名,一般大寫
常數(shù),表達(dá)式
格式:#define
標(biāo)識(shí)符
字符序列
不以分號(hào)結(jié)尾定義符號(hào)常量的方法就是
分隔用空格分隔用空格
宏定義寫在函數(shù)的外面,一般在文件開頭一種宏定義#definePI3.14159262)無參宏調(diào)用:在程序里,用到字main()符序列的地方改用標(biāo)識(shí)符{intr=3;doubles,d;d=2*PI*r;/*圓周長*/3)無參宏展開:系統(tǒng)自動(dòng)將宏名替S=PI*r*r;/*面積*/換為字符序列d=2*3.1415926*rs=3.1415926*r*r;}
預(yù)處理進(jìn)行宏定義時(shí),可以引用已定義的宏名,可以層層替換舉例:#defineR3#definePI3.1415926#defineD2*PI*Rmain(){printf(“%f〞,D);}
D2*PI*R2*3.1415926*3
預(yù)處理1)帶參宏定義:多個(gè)參數(shù)由逗號(hào)分隔
格式:#define
標(biāo)識(shí)符(形參列表)字符序列隔開用空格
隔開用空格
2)帶參宏定義的調(diào)用:標(biāo)識(shí)符(實(shí)參列表);/*實(shí)參可以是數(shù)值和表達(dá)式*/
3)帶參宏定義的展開(系統(tǒng)如何理解帶參的宏調(diào)用?):宏調(diào)用置換為字符序列.將字符序列中,所有形參符號(hào)(a,b)用實(shí)參符號(hào)(3,4)來置換,替換的過程是簡單的符號(hào)置換
#definemax(a,b)(ab)?a:bmax(3,4)max(3,4)展開為34?3:4結(jié)果:4
舉例:#definemax(a,b)(ab)?a:bmain(){inta=3,b=4,m;m=max(3,4);printf(“%d〞,m);}
預(yù)處理帶參宏:
#defineV(s1,s2)s1=i*w;s2=i*hmain(){inti=3,w=4,h=5,a,b;V(a,b);printf(“a=%d,b=%d〞,a,b);}V(a,b)置換為s1=i*w;s2=i*h
遇到宏調(diào)用,將宏調(diào)用置換為字符序列.將字符序列中,所有形參符號(hào)用實(shí)參符號(hào)來置換,替換的過程是簡單的符號(hào)置換
形參符號(hào):(s1,s2)實(shí)參符號(hào):(a,b)
將s1=i*w;s2=i*h中,所有的s1替換為a,s2替換為b,其余不變a=i*w;b=i*h;
a=12,b=15;
預(yù)處理帶參宏:
將字符序列中,所有形參符號(hào)替換為對應(yīng)實(shí)參符號(hào)
#defineS(x)x*xmain(){intm;m=S(3);m=S(3+1);}3*3(3+1)*(3+1)?結(jié)果:3+1*3+17注意:替換的過程是簡單的字符置換,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淘寶購物合同范例
- 合同解除的狀告3篇
- 轉(zhuǎn)上合同范例
- 合同模板系列車輛轉(zhuǎn)讓協(xié)議模板3篇
- 車輛保險(xiǎn)定采購合同范例
- 德州正規(guī)賣房合同范例
- 數(shù)控設(shè)備保養(yǎng)合同范例
- 遂寧個(gè)人保潔合同范例
- 合伙種檳榔合同范例
- 美術(shù)班房屋租賃合同范例
- 危急值的考試題及答案
- 法務(wù)崗位招聘面試題及回答建議(某大型央企)2024年
- 職業(yè)生涯規(guī)劃-體驗(yàn)式學(xué)習(xí)智慧樹知到期末考試答案章節(jié)答案2024年華僑大學(xué)
- 2024年華潤電力投資有限公司招聘筆試參考題庫含答案解析
- 湘少版六年級英語上冊《Unit 12 第二課時(shí)(Part CPart D)》課堂教學(xué)課件公開課
- ZDJ9系列轉(zhuǎn)轍機(jī)課件
- 鄰近營業(yè)線施工方案)
- 危險(xiǎn)化學(xué)品儲(chǔ)存安全檢查表(共4頁)
- 揚(yáng)州市梅嶺二年級數(shù)學(xué)上冊期末復(fù)習(xí)試卷(一)及答案
- 新西蘭旅行計(jì)劃日行程單簽證
- 管道保護(hù)工試題5.實(shí)際操作題
評論
0/150
提交評論