版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、會計學(xué)1程序設(shè)計程序設(shè)計(chn x sh j)初步數(shù)據(jù)類型初步數(shù)據(jù)類型新新第一頁,共86頁。第1頁/共86頁第二頁,共86頁。2.7 2.7 各類數(shù)值型數(shù)據(jù)各類數(shù)值型數(shù)據(jù)(shj)(shj)間的混合運算間的混合運算 2.8 2.8 運算符和表達式運算符和表達式 第2頁/共86頁第三頁,共86頁。C+語言(yyn)提供了以下一些數(shù)據(jù)類型。 布爾型數(shù)據(jù)布爾型數(shù)據(jù)第3頁/共86頁第四頁,共86頁。 2.2.1 2.2.1 常量常量在程序運行過程中在程序運行過程中, ,其值不能被改變其值不能被改變(gibin)(gibin)的量稱為常量的量稱為常量常量區(qū)分為不同的類型:常量區(qū)分為不同的類型:整型 1
2、00,125,-100,0實型 3.14 , 0.125,-3.789字符(z f)型 a, b,2符號常量符號常量為了使用方便,可用一個符號名來代表一個常量。第4頁/共86頁第五頁,共86頁。例例2.1在程序在程序(chngx)中使用符號常量中使用符號常量 #define PRICE 30#include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); 運行運行(ynxng)(ynxng)結(jié)果:結(jié)果: total=300total=300如再用賦值語句給如再用賦值語句給PRIC
3、E賦值是錯的賦值是錯的PRICE=40;/ /* * 錯誤,不能給符號常量賦錯誤,不能給符號常量賦不能對符號常量指定類型不能對符號常量指定類型int PRICE; / /* * 錯誤,錯誤,PRICEPRICE不是變量,不能指不是變量,不能指定類型定類型 * */ / 第5頁/共86頁第六頁,共86頁。 2.2.2 2.2.2變量變量(binling)(binling)在程序運行過程中可以改變的量。在程序運行過程中可以改變的量。變量變量(binling) -(binling) b 第8頁/共86頁第九頁,共86頁。第9頁/共86頁第十頁,共86頁。2.3.12.3.1整型常量的表示形式整型常量
4、的表示形式 整型常量即整常數(shù)整型常量即整常數(shù)(chngsh)(chngsh)。在。在+語言中語言中,整常數(shù),整常數(shù)(chngsh)(chngsh)可用以下三種形式表示:可用以下三種形式表示:(1)(1)十進制整數(shù)。十進制整數(shù)。 如:如:123, -456123, -456,4 4。(2)(2)八進制整數(shù)。以八進制整數(shù)。以0 0頭的數(shù)是八進制數(shù)。頭的數(shù)是八進制數(shù)。 如:如:01230123表示八進制數(shù)表示八進制數(shù)123123,等于十進制數(shù),等于十進制數(shù)83,-01183,-011表示八進制數(shù)表示八進制數(shù)-11,-11,即十進制數(shù)即十進制數(shù)-9-9。第10頁/共86頁第十一頁,共86頁。2.3.1
5、2.3.1整型常量的表示形式整型常量的表示形式(xngsh)(xngsh)(3)(3)十六進制整數(shù)。以十六進制整數(shù)。以0 x0 x開頭的數(shù)是開頭的數(shù)是1616進制數(shù)。進制數(shù)。 如:如:0 x1230 x123,代表,代表1616進制數(shù)進制數(shù)123,123,等于十進制等于十進制數(shù)數(shù) 291 291。 -0 x12 -0 x12等于十進制數(shù)等于十進制數(shù)1010。 2.3.2 2.3.2整型變量整型變量整型變量用來存放整型常量。整型變量的基本整型變量用來存放整型常量。整型變量的基本(jbn)(jbn)類型符為類型符為intint。C+C+語言中有以下語言中有以下3 3類整型變量類整型變量 :基本:基
6、本(jbn)(jbn)整型整型,短整型,長整型。,短整型,長整型。第11頁/共86頁第十二頁,共86頁。一般情況下,存儲整數(shù)時存儲單元中的第一個二進位用來代表數(shù)值符號,而在實際應(yīng)用中,變量(binling)的值常常是正的 ,所以存儲單元全部用來存儲數(shù)值本身,此定義無符號整數(shù)。所以歸納起來,在C+語言中,可以定義和使用6種整型變量(binling)共六種共六種有符號(fho)基本整型有符號(fho)短整型有符號(fho)長整型無符號(fho)基本整型無符號(fho)短整型無符號(fho)長整型(signed)int (signed)short (int )(signed) long (int)u
7、nsigned intunsigned short (int)unsigned long (int) 注意:注意:括號表示其中的內(nèi)容是可選的.第12頁/共86頁第十三頁,共86頁。 整數(shù)類型的有關(guān)(yugun)數(shù)據(jù):第13頁/共86頁第十四頁,共86頁。例例2.2 整型變量整型變量(binling)的定義與使用的定義與使用#include void main()() int a,b,c,d; /*指定、為整型變指定、為整型變量量(binling)* unsigned *指定為無符號整型變量指定為無符號整型變量(binling)* 12;-24;10; ; printf(,);,); 運行運行(
8、ynxng)(ynxng)結(jié)果:結(jié)果: , 第14頁/共86頁第十五頁,共86頁。0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 010第15頁/共86頁第十六頁,共86頁。n得-10的補碼(c)n0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 11 1 1 1 1 1 1 1 1 0 10 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0第16頁/共86頁第十七頁,共86頁。例例2.3 整型數(shù)據(jù)整型數(shù)據(jù)(shj)的溢出的溢出#include void main()int a,b; a=32767; b=a+1; printf(“%d,%dn”
9、,a,b);運行運行(ynxng)(ynxng)結(jié)果:結(jié)果: 32767,- 32767,-3276832768 如果系統(tǒng)給一個整型變量分配2個字節(jié),則變量的最大允許值為32767,若超出最大值則出現(xiàn)溢出現(xiàn)象。 第17頁/共86頁第十八頁,共86頁。 2.3.5 2.3.5 整型常量整型常量(chngling)(chngling)的類型的類型 整型變量的分類規(guī)則:整型變量的分類規(guī)則: (1) (1)一個整數(shù),如果其值在一個整數(shù),如果其值在-32768-32768+32767+32767范圍內(nèi)范圍內(nèi),認為它是,認為它是intint型,它可以賦值給型,它可以賦值給intint型和型和long lo
10、ng intint型變量。型變量。 (2) (2) 一個整數(shù),如果其值超過了上述范圍,而在一個整數(shù),如果其值超過了上述范圍,而在- -21474836372147483637+2147483647+2147483647范圍內(nèi),則認為它是為范圍內(nèi),則認為它是為長整型??梢詫⑺x值給一個長整型??梢詫⑺x值給一個long intlong int型變量。型變量。 第18頁/共86頁第十九頁,共86頁。 2.3.5 2.3.5 整型常量整型常量(chngling)(chngling)的類型的類型 (3) (3) 在一個整常量在一個整常量(chngling)(chngling)后面加一個字母后面加一個字
11、母l l或或L L,則認為是,則認為是long intlong int型常量型常量(chngling)(chngling),例如例如123l123l、432L432L、0L0L等,這往往用于函數(shù)調(diào)用中等,這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為。如果函數(shù)的形參為long intlong int型,則要求實參也型,則要求實參也為為long intlong int型。型。 (4) (4) 一個整常量一個整常量(chngling)(chngling)后面加一個字母后面加一個字母u u或或U U,認為是,認為是unsigned intunsigned int型,如型,如12345u12345u在內(nèi)存中在
12、內(nèi)存中按按unsigned intunsigned int規(guī)定的方式存放規(guī)定的方式存放( (存儲單元中最存儲單元中最高位不作為符號位,而用來存儲數(shù)據(jù)高位不作為符號位,而用來存儲數(shù)據(jù)) )。第19頁/共86頁第二十頁,共86頁。 2.4.1 2.4.1浮點型常量的表示浮點型常量的表示(biosh)(biosh)形式形式兩種表兩種表示形式示形式(xngsh)十進制小數(shù)十進制小數(shù)指數(shù)指數(shù)0.1230.1233 3e-3e-3注意注意: :字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù) 第20頁/共86頁第二十一頁,共86頁。 2.4.1 2.4.1浮點型常量的表示形式浮點型常量的表示形式 規(guī)
13、范化的指數(shù)形式:規(guī)范化的指數(shù)形式: 在字母在字母e e(或(或E E)之前的小數(shù)部分中,小數(shù)點左)之前的小數(shù)部分中,小數(shù)點左邊邊應(yīng)有一位(且只能有一位)非零的數(shù)字應(yīng)有一位(且只能有一位)非零的數(shù)字(shz).(shz). 例如例如: 123.456: 123.456可以表示為:可以表示為: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e0.123456e3, 0.0123456e4, 0.00123456e 其中的其中的1.23456e3
14、1.23456e3稱為稱為“規(guī)范化的指數(shù)形式規(guī)范化的指數(shù)形式”。第21頁/共86頁第二十二頁,共86頁。 2.4.2 2.4.2 浮點型變量浮點型變量(binling)(binling) 1 1)浮點型變量)浮點型變量(binling)(binling)分為單精度(分為單精度(floatfloat型)、雙精度(型)、雙精度(doubledouble型)和長雙精型)和長雙精度型(度型(long doublelong double)三類形式。)三類形式。第22頁/共86頁第二十三頁,共86頁。 2.4.2 浮點型變量浮點型變量 2)浮點型數(shù)據(jù)在內(nèi)存中的存放形式:)浮點型數(shù)據(jù)在內(nèi)存中的存放形式: 一
15、個浮點型數(shù)據(jù)一般在內(nèi)存中占一個浮點型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)個字節(jié)(32位位)。與整型數(shù)據(jù)的存儲方式不同,浮點。與整型數(shù)據(jù)的存儲方式不同,浮點型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個浮點型數(shù)據(jù)分成小數(shù)個浮點型數(shù)據(jù)分成小數(shù)(xiosh)部分和指部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。的指數(shù)形式。第23頁/共86頁第二十四頁,共86頁。3)浮點型數(shù)據(jù)的舍入誤差)浮點型數(shù)據(jù)的舍入誤差:由于浮點型變量是由有限的存儲單元由于浮點型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是組成的,因此能提供的有效數(shù)字總是(
16、zn sh)有限的。在有限的。在有效位以外的數(shù)字將被舍去。由此可能會產(chǎn)生一些誤差有效位以外的數(shù)字將被舍去。由此可能會產(chǎn)生一些誤差例例2.4 浮點型數(shù)據(jù)的舍入誤差浮點型數(shù)據(jù)的舍入誤差#include void main()float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn”,b); 運行運行(ynxng)(ynxng)結(jié)果:結(jié)果: 123456.789e5123456.789e5 2.4.2 2.4.2 浮點型變量浮點型變量第24頁/共86頁第二十五頁,共86頁。.4.3 .4.3 浮點型常量的類型浮點型常量的類型 C+ C+編譯系統(tǒng)將浮點
17、型常量作為雙精度來處理。編譯系統(tǒng)將浮點型常量作為雙精度來處理。 例如:例如:f = 2.45678 f = 2.45678 * * 4523.65 4523.65 系統(tǒng)先把系統(tǒng)先把2.456782.45678和和4523.654523.65作為雙精度數(shù),然作為雙精度數(shù),然后進行相乘的運算,得到后進行相乘的運算,得到(d do)(d do)的乘也是一的乘也是一個雙精度數(shù)。個雙精度數(shù)。如果把一個浮點型常量賦給一個單精度變量如果把一個浮點型常量賦給一個單精度變量f f系系統(tǒng)給出警告,警告不影響連接和運行最后結(jié)果統(tǒng)給出警告,警告不影響連接和運行最后結(jié)果但只取其結(jié)果前但只取其結(jié)果前7 7位賦給浮點型變量
18、位賦給浮點型變量f f。如是在數(shù)的后面加字母如是在數(shù)的后面加字母f f或或F F(如(如1.65f, 1.65f, 654.87F654.87F),編譯系統(tǒng)就會把它們按單精度處理),編譯系統(tǒng)就會把它們按單精度處理。第25頁/共86頁第二十六頁,共86頁。.5.1 .5.1 字符常量字符常量(chngling)(chngling)(1)(1)用單引號包含的一個字符是字符型常量用單引號包含的一個字符是字符型常量(chngling)(chngling)(2)(2)只能包含一個字符只能包含一個字符a a, ,A A, , 1 1abcabc、“a a”第26頁/共86頁第二十七頁,共86頁。 有些以“
19、”開頭(ki tu)的特殊字符稱為轉(zhuǎn)義字符 含 義 ASCII代碼 換行,將當(dāng)前位置移到下一行開頭 10 水平制表(跳到下一個Tab位置) 9 退格,將當(dāng)前位置移到前一列 8 回車,將當(dāng)前位置移到本行開頭 13 換頁,將當(dāng)前位置移到下頁開頭 12 a 發(fā)出鈴聲 7 代表一個反斜杠字符“”92 代表一個單撇號字符 39 代表一個雙撇號字符34 到位八進制數(shù)所代表的字符 到位十六進制數(shù)所代表的字符 第27頁/共86頁第二十八頁,共86頁。例例2.5 轉(zhuǎn)義字符的使用轉(zhuǎn)義字符的使用(shyng)#include void ()() ( ab ct derftgn); printf(htibbj kn)
20、; 打印機上的顯示打印機上的顯示(xinsh)(xinsh)結(jié)果:結(jié)果: fab c gde fab c gde h jik h jik 顯示屏上的運行顯示屏上的運行(ynxng)(ynxng)結(jié)果:結(jié)果: f gde f gde j k j k第28頁/共86頁第二十九頁,共86頁。 2.5.2字符變量字符變量字符型變量用來存放字符常量,注意只能放一個字符型變量用來存放字符常量,注意只能放一個(y )字符。字符。字符變量的定義形式如下:字符變量的定義形式如下:char c1,c2;在本函數(shù)中可以用下面語句對在本函數(shù)中可以用下面語句對c1,c2賦值:賦值: c1a;c2 b ;一個一個(y )
21、字符變量在內(nèi)存中占一個字符變量在內(nèi)存中占一個(y )字節(jié)。字節(jié)。 第29頁/共86頁第三十頁,共86頁。2.5.3 2.5.3 字符數(shù)據(jù)在內(nèi)存中的存儲字符數(shù)據(jù)在內(nèi)存中的存儲(cn ch)(cn ch)形式及其使用形式及其使用方法方法字符變量中存放的是字符的字符變量中存放的是字符的ASCIIASCII碼,這樣和部分碼,這樣和部分intint數(shù)據(jù)數(shù)據(jù)通用。通用。注意: 字符數(shù)據(jù)可以(1)%c形式輸出 (2) %d形式輸出 (3)可以與int數(shù)據(jù)進行(jnxng)運算第30頁/共86頁第三十一頁,共86頁。例例2.6 2.6 向字符變量賦予向字符變量賦予(fy)(fy)整數(shù)。整數(shù)。 #include
22、 #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf(“%c %cn”,c1,c2); printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); printf(“%d %dn”,c1,c2); 運行運行(ynxng)(ynxng)結(jié)果:結(jié)果: 97 98 97 98第31頁/共86頁第三十二頁,共86頁。例例2.7 2.7 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換(zhunhun) (zhunhun) #include #include
23、 void main()void main() char c1,c2 char c1,c2; c1=a; c1=a; c2=b; c2=b; c1=c1-32; c1=c1-32; c2=c2-32; c2=c2-32; printf(“ printf(“c c cc,c1,c2c1,c2);); 運行運行(ynxng)(ynxng)結(jié)結(jié)果:果: 第32頁/共86頁第三十三頁,共86頁。第33頁/共86頁第三十四頁,共86頁。 2.5.4 2.5.4 字符串常量字符串常量(chngling)(chngling)字符串常量字符串常量(chngling)(chngling)是一對雙撇號括起來的是一
24、對雙撇號括起來的字符序列字符序列. .合法的字符串常量合法的字符串常量(chngling):(chngling):“How do you do.”, “CHINA”“How do you do.”, “CHINA”, “a” “a” , “$123.45” “$123.45”可以輸出一個字符串,如可以輸出一個字符串,如printf(“How do you do.”)printf(“How do you do.”);第34頁/共86頁第三十五頁,共86頁。 是字符常量(chngling), “a”是字符串常量(chngling),二者不同。 如:假設(shè)被指定為字符變量 :char c c= a;
25、“a” ;c “CHINA”; 結(jié)論:不能把一個字符(z f)串常量賦給一個字符(z f)變量。第35頁/共86頁第三十六頁,共86頁。 +規(guī)定:在每一個(y )字符串常量的結(jié)尾加一個(y ) “字符 串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。 +規(guī)定以字符作為字符串結(jié)束標(biāo)志。 如:如果有一個(y )字符串常量” ,實際上在內(nèi)存中是:CHINA0 它占內(nèi)存單元不是個字符(z f),而是個字符(z f),最后一個字符(z f)為。但在輸出時不輸出。第36頁/共86頁第三十七頁,共86頁。q2.6布爾型數(shù)據(jù)布爾型數(shù)據(jù)qboolq值為值為true和和falseq可以當(dāng)作整數(shù)用(可以當(dāng)作整數(shù)用(
26、true一般為一般為1,false為為0)q把其它把其它(qt)類型的值轉(zhuǎn)換為布爾值時,非零值轉(zhuǎn)換為類型的值轉(zhuǎn)換為布爾值時,非零值轉(zhuǎn)換為true,零值轉(zhuǎn)換為,零值轉(zhuǎn)換為false第37頁/共86頁第三十八頁,共86頁?;旌线\算:整型(包括(boku)int,short,long)、浮點型(包括(boku)float,double)可以混合運算。在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算.說明(shumng): 這種類型轉(zhuǎn)換是由系統(tǒng)自動進行的。1.1.隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換第38頁/共86頁第三十九頁,共86頁。2. 2. 強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符 可以可以(ky
27、)(ky)利用強制類型轉(zhuǎn)換運算符將一個表達利用強制類型轉(zhuǎn)換運算符將一個表達式式轉(zhuǎn)換成所需類型。轉(zhuǎn)換成所需類型。 一般形式一般形式: :(類型名)(表達式)(類型名)(表達式)說明: 表達式應(yīng)該用括號括起來。 在強制類型轉(zhuǎn)換時,得到一個所需類型的中間變量(binling),原來變量(binling)的類型未發(fā)生變化。第39頁/共86頁第四十頁,共86頁。例例2.8 強制強制(qingzh)類型轉(zhuǎn)換。類型轉(zhuǎn)換。 #include void main() float x; int i; x=3.6; i=(int)x; printf(x=%f, i=%dn,x,i); 運行運行(ynxng)(ynx
28、ng)結(jié)果:結(jié)果: x x3.6000003.600000, i=3 i=3第40頁/共86頁第四十一頁,共86頁。 2.8.1 +運算符和運算符和C+表達式簡介表達式簡介 1. +語言的運算符有以下語言的運算符有以下(yxi)幾類:幾類:算術(shù)運算符算術(shù)運算符 (+ - * / %)關(guān)系運算符關(guān)系運算符 (?。ǎ。┻壿嬤\算符邏輯運算符 (?。?!|)位運算符位運算符 ( |)賦值運算符賦值運算符 (及其擴展賦值運算符)(及其擴展賦值運算符)條件運算符條件運算符 (?:)(?:)逗號運算符逗號運算符 (,),)第41頁/共86頁第四十二頁,共86頁。(8)指針運算符 (*和)(9)求字節(jié)數(shù)運算符
29、()(10)強制類型轉(zhuǎn)換運算符( (類型) )(11)分量(fn ling)運算符(-)(12)下標(biāo)運算符()(13)其他 (如函數(shù)調(diào)用運算符()第42頁/共86頁第四十三頁,共86頁。2. C+語言的表達式有以下幾類:語言的表達式有以下幾類:(1)算術(shù)表達式:如算術(shù)表達式:如2+6.7*3.5+sin(0.5)(2)關(guān)系表達式:如關(guān)系表達式:如x0,y0 & y0 (表示表示(biosh)x0與與y0同時成立同時成立,&是邏輯運算符,代表是邏輯運算符,代表“與與”)(4)賦值表達式:如賦值表達式:如a=5.6(5)逗號表達式:如逗號表達式:如a=3,y=4,z=8 第43頁/
30、共86頁第四十四頁,共86頁。 2.8.2 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 1. 基本基本(jbn)的算術(shù)運算符的算術(shù)運算符:* (如(如:結(jié)果為;結(jié)果為;-11/3 結(jié)果為結(jié)果為-3) (如(如:的值為;的值為;11%-3結(jié)果為結(jié)果為2)。)。第44頁/共86頁第四十五頁,共86頁。2. 2. 算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性 用算術(shù)運算符和括號將運算對象用算術(shù)運算符和括號將運算對象( (也稱操作也稱操作數(shù))連接起來的、符合數(shù))連接起來的、符合+語法規(guī)則的式子,語法規(guī)則的式子,稱為稱為+算術(shù)表達式。運算對象包括常算術(shù)表達式。運算對象包括常量、
31、變量、量、變量、函數(shù)等。函數(shù)等。 例如例如(lr): (lr): * *.5.5aa 是一個合法的表達式是一個合法的表達式第45頁/共86頁第四十六頁,共86頁。+語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。 在表達式求值時,先按運算符的優(yōu)先級別高低(god)次序執(zhí)行,例如先乘除后加減。 +規(guī)定了各種運算符的結(jié)合方向(結(jié)合性) 算術(shù)運算符的結(jié)合方向為“自左至右”,即先左后右 。第46頁/共86頁第四十七頁,共86頁。 3. 3. 自增、自減運算符自增、自減運算符 作用作用(zuyng)(zuyng)是使變量的值增或減是使變量的值增或減如:如: ,(在使用之前,先使的值加,(在使用之前,先使的值加 (減)
32、(減),(在使用之后,使的值加(,(在使用之后,使的值加( 減)減) 第47頁/共86頁第四十八頁,共86頁。i+i+與與+i+i的區(qū)別的區(qū)別(qbi)(qbi): 是先執(zhí)行后,再使用的值是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行是先使用的值后,再執(zhí)行。例如:例如: ; i i的值先變成的值先變成4, 4, 再賦給再賦給,j,j的值為的值為 ; 先將先將 i i的值的值3 3賦給賦給, ,的值為,然后變的值為,然后變?yōu)闉榈?8頁/共86頁第四十九頁,共86頁。注意:注意: (1)自增運算符(),自減運算符(),只能用于變量,而不能用于常量或表達式,自增運算符(),自減運算符(),只能用于
33、變量,而不能用于常量或表達式, (2)和的結(jié)合方向是和的結(jié)合方向是“自右至左自右至左”。 (3)自增(減)運算符常用于循環(huán)語句中使循環(huán)變自增(減)運算符常用于循環(huán)語句中使循環(huán)變 量自動加。也用于指針變量,使指針指向下一個地址。量自動加。也用于指針變量,使指針指向下一個地址。 (4)使用和時使用和時 ,為避免二義性,最好采取,為避免二義性,最好采取(ciq)大家都能理解的寫法,可以加一些大家都能理解的寫法,可以加一些“不必要不必要”的括號,如的括號,如(i+)+j。第49頁/共86頁第五十頁,共86頁。1.1.關(guān)系運算符及其優(yōu)先關(guān)系運算符及其優(yōu)先(yuxin)(yuxin)次序次序 ( (小于小
34、于) )= ( ( (大于大于) )= (= (大于或等于大于或等于) )= (= (等于等于) )!= (!= (不等于不等于) )優(yōu)先級相同(高)優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級相同(低)說明:說明:關(guān)系關(guān)系(gun x)運算符的優(yōu)先級低于算術(shù)運算符運算符的優(yōu)先級低于算術(shù)運算符關(guān)系關(guān)系(gun x)運算符的優(yōu)先級高于賦值運算符運算符的優(yōu)先級高于賦值運算符第50頁/共86頁第五十一頁,共86頁。2.2.關(guān)系表達式關(guān)系表達式用關(guān)系運算符將兩個表達式(可以是算術(shù)用關(guān)系運算符將兩個表達式(可以是算術(shù)(sunsh)(sunsh)表達式或表達式或 關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式)
35、關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式) 接起來的式子,稱關(guān)系表達式接起來的式子,稱關(guān)系表達式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb,a+bb+c,(a=3)(b=5),ab)(bb”ab”的值為的值為“真真”,表達式的值為,表達式的值為1 1。第51頁/共86頁第五十二頁,共86頁。1.1.邏輯運算符及其優(yōu)先邏輯運算符及其優(yōu)先(yuxin)(yuxin)次序次序& (& (邏輯與邏輯與) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的ANDAND| (| (邏輯或邏輯或) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的OROR! (! (邏輯非邏輯非) )
36、 相當(dāng)于其他語言中的相當(dāng)于其他語言中的NOTNOT例:例:a&b a&b 若若a,ba,b為真,則為真,則a&ba&b為真。為真。 a|b a|b 若若a,ba,b之一為真,則之一為真,則a|ba|b為真。為真。 !a a 若若a a為真,則為真,則!a!a為假。為假。優(yōu)先次序:優(yōu)先次序:!(非非)-&()-|()邏輯邏輯(lu j)運算符中的運算符中的“&”和和“|”低于關(guān)系運算符,低于關(guān)系運算符,“!”高于算高于算 術(shù)運算符術(shù)運算符第52頁/共86頁第五十三頁,共86頁。2.2.邏輯表達式邏輯表達式用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式
37、子就用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就 是邏輯表達式是邏輯表達式邏輯表達式的值應(yīng)該邏輯表達式的值應(yīng)該(ynggi)(ynggi)是一個邏輯量是一個邏輯量“真真”或或“假假”。例:例:設(shè)設(shè)a=4a=4,b=5b=5:!a!a的值為的值為0 a&b0 a&b的值為的值為1 1a|ba|b的值為的值為1 !a|b1 !a|b的值為的值為1 14&0|24&0|2的值為的值為1 1任何非零的數(shù)值任何非零的數(shù)值(shz)被認作被認作“真真”第53頁/共86頁第五十四頁,共86頁。例:53&84-!0 自左向右運算(yn sun) 1&0邏輯值
38、為083邏輯值為1表達式值為0第54頁/共86頁第五十五頁,共86頁。在邏輯在邏輯(lu j)(lu j)表達式的求解中,并不是所有的邏輯表達式的求解中,并不是所有的邏輯(lu j)(lu j)運算符都要被執(zhí)行。運算符都要被執(zhí)行。(1)a&b&c (1)a&b&c 只有只有a a為真時,才需要判斷為真時,才需要判斷b b的值,只有的值,只有a a和和b b都為真時,都為真時, 才需要判斷才需要判斷c c的值。的值。(2)a|b|c (2)a|b|c 只要只要a a為真,就不必判斷為真,就不必判斷b b和和c c的值,只有的值,只有a a為假,才為假,才 判斷判斷
39、b b。a a和和b b都為假才判斷都為假才判斷c c 設(shè)設(shè)a=1,b=2,c=3,d=4, m=1,n=1; 例例:(m=ab)&(n=cd)第55頁/共86頁第五十六頁,共86頁。 用邏輯表達式來表示閏年的條件能被4整除,但不能被100整除。能被4整除,又能被400整除答答 (year%4=0&year%100!=0)|year%400=0案案 值為真值為真(1)是閏年是閏年(rnnin),否則為非閏年,否則為非閏年(rnnin)。第56頁/共86頁第五十七頁,共86頁。 所謂位運算,是指對一個數(shù)據(jù)的某些二進制位進行(jnxng)的運算。 規(guī)定最左邊一位為最高位: 位邏輯運
40、算符:按位非 按位與 & 按位或 | 按位異或 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0第57頁/共86頁第五十八頁,共86頁。例 int x=31; 求x 0000000000011111 1111111111100000即:x= - 32例:int x=31;y=-5; 求x&y 0000000000011111& 1111111111111011 0000000000011011即:x&y=27l按位非 0=1 1=0l 舉例(j l):按位與 0&0=0 0&1=0 1&0=0 1&1=1
41、 舉例(j l):第58頁/共86頁第五十九頁,共86頁?!鞍次慌c按位與”運算有如下一些用途運算有如下一些用途(yngt):(1)將數(shù)據(jù)中的某些位清零)將數(shù)據(jù)中的某些位清零(2)測試指定位是)測試指定位是0還是還是1(3)獲得)獲得x指定位的值指定位的值例如:設(shè)X為一個字符型變量(8位二進制位),判斷其最低位為0還是1只需:X & 0 x01 即可!X= x x x x x x x x & 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 x例如:設(shè)X是unsigned類型的整數(shù)(16位二進制數(shù)),要求獲取X的低8位只需:X & 0 x00ff 即可!X= x
42、 x x x x x x x x x x x x x x x & 0 0 0 0 0 0 0 011 1 1 1 1 1 1 0 0 0 0 0 0 0 0 x x x x x x x x第59頁/共86頁第六十頁,共86頁。例:int x=31;y=-5; 求x | y 0000000000011111 | 1111111111111011 1111111111111111即:x | y=-1按位或 0|0=0 0|1=1 1|0=1 1|1=1 舉例(j l):“按位或”運算常用(chn yn)于對一個數(shù)據(jù)中的某些位置1。例如:將一個無符號整數(shù)X的第4位置1。只需: X | 0 x
43、10 即可!X= x x x x x x x x x x x x x x x x | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 x x x x x x x x x x x 1 x x x x第60頁/共86頁第六十一頁,共86頁。按位異或 00=0 01=1 10=1 11=0 舉例(j l):例:int x=31;y=-5; 求x y 0000000000011111 1111111111111011 1111111111100100即:x | y=-28“按位異或”運算(yn sun)有如下一些用途:(1)使數(shù)據(jù)中的某些位求反 該位與1異或即可(2)對變量清零 XX位
44、位位位&| 01011100000101110110位邏輯(lu j)運算符總結(jié):第61頁/共86頁第六十二頁,共86頁。移位運算符移位運算符 左移運算符左移運算符 使用使用(shyng)方式:運算對象方式:運算對象左移位數(shù)左移位數(shù) 功能:將運算對象的每個二進制位同時向左移動制定的位數(shù),從左邊移出的功能:將運算對象的每個二進制位同時向左移動制定的位數(shù),從左邊移出的高位部分被丟棄,低位部分用高位部分被丟棄,低位部分用0補齊補齊 左移左移1位相當(dāng)于該數(shù)乘以位相當(dāng)于該數(shù)乘以2!(僅對移出的高位不含?。▋H對移出的高位不含1的成立)的成立) eg. 642 0100 0000 左移左移2位得位得
45、 0000 0000 左移比乘法元算快的多,有些左移比乘法元算快的多,有些C+編譯程序自動將乘編譯程序自動將乘2的運算用左移的運算用左移1位來實位來實現(xiàn),將乘現(xiàn),將乘2n的冪運算處理為左移的冪運算處理為左移n位。位。例:設(shè) a=15; 求 a 使用方式:運算對象左移位數(shù) 功能:將運算對象的每個二進制位同時向右移動制定(zhdng)的位數(shù),從右邊移出的低位部分被丟棄。 對于無符號數(shù),左邊高位用0補齊; 對于有符號數(shù),正數(shù)左邊高位也是補0; 負數(shù)高位補0還是補1和具體的系統(tǒng)有關(guān)。 補0 稱為:邏輯右移,補1稱為:算數(shù)右移 例:設(shè) a=15; 求 a20000 0000 0000 1111 左移2位
46、得:0000 0000 0000 0011 即十進制的3例:設(shè)a=-50; 求 a2 a : 1111 1111 1100 1110a1: 0111 1111 1110 0111 (邏輯右移(yu y))a1: 1111 1111 1110 0111 (算數(shù)右移(yu y))右移右移(yu y)1位相當(dāng)于位相當(dāng)于除以除以2,右移,右移(yu y)n位位相當(dāng)于除以相當(dāng)于除以2n第63頁/共86頁第六十四頁,共86頁。逗號運算符逗號運算符: :將兩個表達式連接起來將兩個表達式連接起來, ,又稱為又稱為(chn (chn wi)“wi)“順序求順序求值運算符值運算符”。 如:如:5 5, 一般一般(
47、ybn)形式形式: 表達式,表達式表達式,表達式求解過程:求解過程: 先求解表達式,再求解表達式。整個逗號表達式的值是表達式的值。 逗號表達式 的值為14第64頁/共86頁第六十五頁,共86頁。例:逗號例:逗號(duho)(duho)表達式表達式* *5 5,* * 一個逗號(duho)表達式又可以與另一個表達式組成一個新的逗號(duho)表達式。 如:(*,*),a+5 第65頁/共86頁第六十六頁,共86頁。 逗號表達式的一般形式(xngsh)可以擴展為 表達式,表達式,表達式,表達式 它的值為表達式的值。 逗號(duho)運算符是所有運算符中級別最低的例: (,*) ,*3賦值表達式,將
48、一個(y )逗號表達式的值賦給,的值等于 逗號表達式,包括一個賦值表達式和一個算術(shù)表達式,的值為,整個逗號表達式的值為18。 第66頁/共86頁第六十七頁,共86頁。注意注意: :并不是并不是(b shi)(b shi)任何地方出現(xiàn)的逗號都任何地方出現(xiàn)的逗號都是作為逗號運算符。例如函數(shù)參數(shù)也是是作為逗號運算符。例如函數(shù)參數(shù)也是用逗號來間隔的。用逗號來間隔的。 如如: printf(“%d,%d,%d”,a,b,c);: printf(“%d,%d,%d”,a,b,c);“,”并不是一個(y )逗號表達式,它是printf函數(shù)的3個參數(shù)printf(“%d,%d,%d”,(a,b,c),b,c)
49、 “(,)”是一個逗號(duho)表達式,它的值等于的值。 第67頁/共86頁第六十八頁,共86頁。1.1.賦值運算符賦值運算符 = = 作用作用(zuyng)(zuyng):給變量賦值:給變量賦值 eg. int a; eg. int a; a=100 a=100 第68頁/共86頁第六十九頁,共86頁。. .復(fù)合的賦值運算符復(fù)合的賦值運算符 在賦值符在賦值符“”之前加上其他之前加上其他(qt)(qt)運算符,可以構(gòu)成運算符,可以構(gòu)成復(fù)合的運算符。復(fù)合的運算符。 例:例:第69頁/共86頁第七十頁,共86頁。第70頁/共86頁第七十一頁,共86頁。第71頁/共86頁第七十二頁,共86頁。第72頁/共86頁第七十三頁,共86頁。第73頁/共86頁第七十四頁,共86頁。 分析分析(fnx)賦值表達式賦值表達式: (a=3*5)=4*3第74頁/共86頁第七十五頁,共86頁。 賦值表達式作為表達式的一種,不僅可以出現(xiàn)在賦值語句(yj)中,而且可以以表達式形式出現(xiàn)在其他語句(yj)(如輸出語句(yj)、循環(huán)語句(yj)等)中 。 例:printf(%d,a=b
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能金融服務(wù)服務(wù)服務(wù)設(shè)備供應(yīng)合同
- 鐵路運輸業(yè)智能化調(diào)度系統(tǒng)升級改造方案
- 高效率配送網(wǎng)絡(luò)建設(shè)方案零售業(yè)升級路徑探索
- 智能制造業(yè)轉(zhuǎn)型升級投資合同
- 草房子故事解讀與感悟
- 醫(yī)藥營銷實戰(zhàn)作業(yè)指導(dǎo)書
- 制造業(yè)生產(chǎn)安全標(biāo)準(zhǔn)化管理制度
- 文化創(chuàng)意行業(yè)智能化文化創(chuàng)意產(chǎn)品開發(fā)與推廣方案
- 汽車后市場智能維修服務(wù)提供方案
- 客戶關(guān)系維護與拓展計劃指南
- 班主任育人故事(通用17篇)
- 初二化學(xué)上冊知識點7篇
- 汽車保養(yǎng)與維護
- 2023-2024學(xué)年貴州省黔西南布依族苗族自治州貞豐縣三年級數(shù)學(xué)第一學(xué)期期末經(jīng)典模擬試題含答案
- 娛樂場所消防安全操作規(guī)程
- 社區(qū)服務(wù)中心
- 商業(yè)天然氣灶具用氣量明細
- 物業(yè)公司合規(guī)管理與風(fēng)險防控全書
- 部編版五年級語文上冊作文總復(fù)習(xí)課件
- 八年級歷史期末考試試卷質(zhì)量分析試卷分析
- 煙草專業(yè)個人簡歷模板
評論
0/150
提交評論