運(yùn)算符以及數(shù)據(jù)類(lèi)型_第1頁(yè)
運(yùn)算符以及數(shù)據(jù)類(lèi)型_第2頁(yè)
運(yùn)算符以及數(shù)據(jù)類(lèi)型_第3頁(yè)
運(yùn)算符以及數(shù)據(jù)類(lèi)型_第4頁(yè)
運(yùn)算符以及數(shù)據(jù)類(lèi)型_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

運(yùn)算符以及數(shù)據(jù)類(lèi)型第一頁(yè),共二十二頁(yè),2022年,8月28日2.6運(yùn)算符及表達(dá)式C語(yǔ)言運(yùn)算符可以分為:算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符。2.6.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.算術(shù)運(yùn)算符:加、減、乘、除及取模即:+,-,*,/,%來(lái)表示。C語(yǔ)言規(guī)定:(1)模運(yùn)算符%,僅用于整型變量或整型常量。(2)優(yōu)先級(jí):一個(gè)表達(dá)式中如有多個(gè)運(yùn)算符,則計(jì)算先后次序?yàn)橄鄳?yīng)運(yùn)算符的優(yōu)先級(jí)高的優(yōu)先。乘、除、模優(yōu)先級(jí)高于加、減的優(yōu)先級(jí)。(3)結(jié)合方向:是一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),應(yīng)遵循的處理規(guī)則。算術(shù)運(yùn)算符的結(jié)合方向是從左至右;賦值運(yùn)算符的結(jié)合方向是從右至左。算術(shù)表達(dá)式:由算術(shù)運(yùn)算符、括號(hào)以及操作對(duì)象組成的符號(hào)C語(yǔ)言語(yǔ)法規(guī)則的表達(dá)式稱為算術(shù)表達(dá)式。第二頁(yè),共二十二頁(yè),2022年,8月28日2.6.2賦值語(yǔ)句1.賦值運(yùn)算符語(yǔ)言的賦值運(yùn)算符是“=”,它的作用是賦值運(yùn)算符右邊表達(dá)式的值賦給其左邊的變量。例如:a=10,x=a+5,前者是把常量10賦給變量a,后者是將表達(dá)式a+5的值賦給變量x.注意:如果“=”兩側(cè)的類(lèi)型不一致,在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換。例如a=b,執(zhí)行該語(yǔ)句時(shí),b的結(jié)果轉(zhuǎn)換為a的類(lèi)型后才能進(jìn)行賦值運(yùn)算。第三頁(yè),共二十二頁(yè),2022年,8月28日2.復(fù)合賦值運(yùn)算符C語(yǔ)言允許在賦值運(yùn)算符“=“之前加上其它運(yùn)算符,以構(gòu)成其復(fù)合運(yùn)算符。復(fù)合運(yùn)算符多數(shù)為雙目。復(fù)合運(yùn)算符有:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=例:a+=2等價(jià)于a=a+2x*=y+5等價(jià)于x=x*(y+5)x%=8等價(jià)于x=x%8賦值運(yùn)算符都是自右向左執(zhí)行。第四頁(yè),共二十二頁(yè),2022年,8月28日3.賦值語(yǔ)句與賦值表達(dá)式賦值語(yǔ)句最簡(jiǎn)單的形式是:<變量>=<表達(dá)式>;功能:是賦值運(yùn)算符右邊的“表達(dá)式”的值賦給左邊的變量。賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符,例:如果a=10,表達(dá)式a+=a-=a*a的值為-180。其步驟為:(1)先進(jìn)行a-=a*a的計(jì)算,它相當(dāng)于a=a-a*a=10-10*10=-90.(2)再進(jìn)行a+=-90的計(jì)算,它相當(dāng)于a=a+(-90)=-90-90=-180.第五頁(yè),共二十二頁(yè),2022年,8月28日4.自增自減運(yùn)算符i++(或i--)表示在使用該表達(dá)式值之后將i值加1(或減1)。++i(或--i)表示在使用該表達(dá)式值之前將i值加1(或減1)。說(shuō)明:(1)++和--僅適用于變量,不能用于常量或表達(dá)式。(2)++和--運(yùn)算符的結(jié)合方向是“至右向左”。Main(){inta=100;printf(“a++=%d\n”,a++);printf(“++a=%d\n”,++a);printf(“a--=%d\n”,a--);printf(“--a=%d\n”,--a);}輸出結(jié)果:a++=100++a=102a--=102--a=100第六頁(yè),共二十二頁(yè),2022年,8月28日2.6.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符均為兩目運(yùn)算符。共有六種:>大于<小于>=大于等于<=小于等于==等于!=不等于關(guān)系運(yùn)算符要求兩個(gè)操作數(shù)是同一種數(shù)據(jù)類(lèi)型,其結(jié)果為一邏輯值,即關(guān)系成立時(shí),其值為真(true),用非0值表示;關(guān)系不成立時(shí),其值為假(false),用0表示。關(guān)系運(yùn)算符的優(yōu)先級(jí)借低于算術(shù)運(yùn)算符,關(guān)系運(yùn)算符==和!=低于前四種運(yùn)算符,并且結(jié)合方向均為自左至右。第七頁(yè),共二十二頁(yè),2022年,8月28日2.關(guān)系表達(dá)式由關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的有意義的式子稱為關(guān)系表達(dá)式。如:a+b<c-6先進(jìn)行a+b和c-6兩個(gè)算術(shù)表達(dá)式的運(yùn)算,得到兩個(gè)值后再進(jìn)行比較,從現(xiàn)而求出關(guān)系表達(dá)式的值。其值為0或非0。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。用1表示“真”,用0表示“假”。如:a=4,b=1,C=a>b;c的值為1,若a=1,b=8,x=a>b;x的值為0。第八頁(yè),共二十二頁(yè),2022年,8月28日2.6.4邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符邏輯運(yùn)算符有“&&“(邏輯與)、”||“(邏輯或)和”!“(邏輯非)三種。邏輯運(yùn)算符的操作對(duì)象為零或非零整數(shù)值,見(jiàn)表2.4.表2.4邏輯運(yùn)算規(guī)則數(shù)據(jù)a數(shù)據(jù)ba&&ba||b!a!bTTTTFFTFFTFTFTFTTFFFFFTT邏輯表達(dá)式由邏輯運(yùn)算符和其操作對(duì)象組成表達(dá)式稱為邏輯表達(dá)式。第九頁(yè),共二十二頁(yè),2022年,8月28日2.6.5位運(yùn)算符位(bit)運(yùn)算是C語(yǔ)言的一大特色,可直接對(duì)構(gòu)成內(nèi)存的基本單位“字節(jié)”(byte)進(jìn)行按位操作。按位與(&)操作規(guī)則:參加運(yùn)算的兩個(gè)運(yùn)算量,如果兩個(gè)相應(yīng)的位均為1,則該位的結(jié)果為1,否則為0,見(jiàn)表2.5表2.5接位與運(yùn)算量10101運(yùn)算量20011結(jié)果0001例如:(1)清零。(2)取一個(gè)數(shù)中的某些位。高位清零:0010110110011100&00000000111111110000000010011100低位清零:0010110110011100

&11111111000000000010110100000000第十頁(yè),共二十二頁(yè),2022年,8月28日按位或(|)操作規(guī)則:參加運(yùn)算的兩個(gè)運(yùn)算量,其相應(yīng)的位中只有一個(gè)為1,則該位的結(jié)果為1,否則為0。表2.6按位或運(yùn)算量10101運(yùn)算量20011結(jié)果0111例如:(1)01000001

|0010100101101001(2)01000001

|0000000001000001(3)01000011

|1111111111111111(4)01000001

|1011111011111111例如:將某一個(gè)數(shù)的某些位置為1。一個(gè)整數(shù)a,要將其低字節(jié)全置為1,即低字節(jié)為11111111,可將該數(shù)與255(十六進(jìn)制為FF,二進(jìn)制為11111111)按按位或即可。第十一頁(yè),共二十二頁(yè),2022年,8月28日按位異或(^)操作規(guī)則:參加運(yùn)算的兩個(gè)運(yùn)算量,當(dāng)相應(yīng)位相同時(shí),其結(jié)果在該位為0,相應(yīng)位不同時(shí),其結(jié)果在該位為1,即按位相加,但不進(jìn)位。表2.7 按位異或運(yùn)算量10101運(yùn)算量20011結(jié)果0110(1)使指定位翻轉(zhuǎn)。即由1變?yōu)?,由0變?yōu)?。例:

01100110^0000111101101001

(2)不使用臨時(shí)變量,交換兩個(gè)值。方法為:若有兩個(gè)數(shù)a和b,通過(guò)下面的賦值語(yǔ)言可將a和b的值互換:a=a^b;b=b^a;b=a^b;第十二頁(yè),共二十二頁(yè),2022年,8月28日4.按位求反(~)操作規(guī)則:運(yùn)算符~是一個(gè)單目運(yùn)算符,用來(lái)對(duì)一個(gè)數(shù)二進(jìn)制表示按位求反,即瘵0變成1,將1變成0。表2.8按位求反運(yùn)算量01結(jié)果10例:~0110100110010110將一個(gè)數(shù)的某些位變?yōu)?。方法是:瘵該數(shù)a與~b按位求與,此處的b為這樣的一個(gè)數(shù),即要求a中變?yōu)?的那些位均為1,其余位均為0。如要將a的最低位變?yōu)?,則可使用下述表達(dá)式實(shí)現(xiàn)。A=a&~1第十三頁(yè),共二十二頁(yè),2022年,8月28日5.左移(<<)操作規(guī)則:將一個(gè)數(shù)的各二進(jìn)制位全部左移若干位,左移后,右邊的這些位用0填補(bǔ),左邊移出的位舍棄不用。例:a=a<<2;若a=15,即二進(jìn)制00001111,左移兩位后變?yōu)?0111100。若再向左移4位,則變?yōu)?1000000。將一個(gè)數(shù)左移1位,相當(dāng)于該數(shù)乘以2,左移2位相當(dāng)于該數(shù)乘以4。如上例中a=15,則a=a<<2,此時(shí)a=15*4=60。但是這種情況僅指左移時(shí)沒(méi)有1被移出去的情況,左移運(yùn)算要比乘法運(yùn)算快得多。第十四頁(yè),共二十二頁(yè),2022年,8月28日6.右移(>>)操作規(guī)則:將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,右移后,右邊移出的位被舍棄,而左邊的填補(bǔ)分兩種情況:(1)該數(shù)為無(wú)符號(hào)數(shù),則高位補(bǔ)0。例:a=a>>2;右a=15,二進(jìn)制為00001111,右移兩位后為00000011。(2)該數(shù)為有符號(hào)數(shù),若原來(lái)的符號(hào)位為0(最高位為0,即正數(shù))則高位補(bǔ)0,若原來(lái)的符號(hào)位為1(即表示該數(shù)為負(fù)數(shù)),高位補(bǔ)0或1,取決于所使用的計(jì)算機(jī)系統(tǒng)。有的系統(tǒng)補(bǔ)0,稱為邏輯右移,有的系統(tǒng)補(bǔ)1,稱為算術(shù)右移。第十五頁(yè),共二十二頁(yè),2022年,8月28日2.6.6其他運(yùn)算符逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符為“,“。逗號(hào)表達(dá)式是用逗號(hào)運(yùn)算符把兩個(gè)表達(dá)式組合成的一個(gè)表達(dá)式。其一般形式為〈表達(dá)式1〉,〈表達(dá)式2〉說(shuō)明:(1)逗號(hào)表達(dá)式的執(zhí)行過(guò)程是:先求表達(dá)式1的值,再求表達(dá)式2的值,表達(dá)式2的值就是整個(gè)逗號(hào)表達(dá)式的值。(2)一個(gè)逗號(hào)表達(dá)式可以與另一個(gè)表達(dá)式構(gòu)成一個(gè)新逗號(hào)表達(dá)式。(3)逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的。(4)逗號(hào)表達(dá)式常用于for語(yǔ)句中,它可以表達(dá)多個(gè)初值或多個(gè)步長(zhǎng)增量。逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為〈表達(dá)式1〉,〈表達(dá)式2〉,〈表達(dá)式3〉,……〈表達(dá)式N〉表達(dá)式n的值是整個(gè)表達(dá)式的值。第十六頁(yè),共二十二頁(yè),2022年,8月28日條件運(yùn)算符條件運(yùn)算符是一個(gè)三目運(yùn)算符,把三表達(dá)式組合成一個(gè)表達(dá)式。其一般形式為〈表達(dá)式1〉?〈表達(dá)式2〉:〈表達(dá)式3〉;功能:計(jì)算〈表達(dá)式1〉的值,如果該值為真(非0值),則計(jì)算〈表達(dá)式2〉的值,并且該值即為條件表達(dá)式值。若〈表達(dá)式1〉的值為假(0),則計(jì)算〈表達(dá)式3〉的值,并將該值作為條件表達(dá)式的值。說(shuō)明:(1)條件運(yùn)算符優(yōu)先級(jí)別高于賦值運(yùn)算符,低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。(2)條件運(yùn)算符結(jié)合方向是“自右至左”。(3)〈表達(dá)式1〉與〈表達(dá)式2〉、〈表達(dá)式3〉類(lèi)型可以不同。第十七頁(yè),共二十二頁(yè),2022年,8月28日3.Sizeof運(yùn)算符sizeof運(yùn)算符是測(cè)試變量、表達(dá)式或類(lèi)型名所占用的字節(jié)數(shù)。有兩種用法。sizeof〈表達(dá)式〉:測(cè)試表達(dá)式所占用的字節(jié)數(shù)。sizeof〈表達(dá)式〉:測(cè)試類(lèi)型名所占用的字節(jié)數(shù)。例如:sizeof(float)其值為4。sizeof運(yùn)算符可以出現(xiàn)的表達(dá)式中。main(){inta=4;floadb=5.6;printf(“%d,%d\n”,sizeof(a),sizeof(b));}輸出結(jié)果:2,4第十八頁(yè),共二十二頁(yè),2022年,8月28日2.7數(shù)據(jù)類(lèi)型轉(zhuǎn)換在內(nèi)存中,字符是以系統(tǒng)中所使用字符的編碼值形式存儲(chǔ)的,C語(yǔ)言允許字符型數(shù)據(jù)和整型數(shù)據(jù)之間通用一個(gè)字符型數(shù)據(jù),即可以以字符形式輸出,也可以以整型形式輸出,同時(shí),字符型數(shù)據(jù)可能賦給整型變量,整型數(shù)據(jù)也可以賦給字符型變量,只是當(dāng)整型變量數(shù)據(jù)的大小超過(guò)字符型變量的表示范圍時(shí),需要截取相應(yīng)的有效位。除字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用之外,不同類(lèi)型的數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),往往需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。因此類(lèi)型轉(zhuǎn)換有兩種方式:一種是自動(dòng)類(lèi)型轉(zhuǎn)換;另一種是強(qiáng)制類(lèi)型轉(zhuǎn)換。第十九頁(yè),共二十二頁(yè),2022年,8月28日2.7.1自動(dòng)類(lèi)型轉(zhuǎn)換在進(jìn)行計(jì)算時(shí),首先將不同類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行計(jì)算不同類(lèi)型數(shù)值轉(zhuǎn)換規(guī)則:DoublefloatLongUnsignedIntchar,short第二十頁(yè),共二十二頁(yè),2022年,8月28日2.7.2強(qiáng)制類(lèi)型轉(zhuǎn)化

溫馨提示

  • 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)論