數(shù)據(jù)類型運算符與表達式PPT課件_第1頁
數(shù)據(jù)類型運算符與表達式PPT課件_第2頁
數(shù)據(jù)類型運算符與表達式PPT課件_第3頁
數(shù)據(jù)類型運算符與表達式PPT課件_第4頁
數(shù)據(jù)類型運算符與表達式PPT課件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 計算機中數(shù)的表示及進制轉(zhuǎn)換 數(shù)碼、基與權(quán) 數(shù)碼:表示數(shù)的符號 基:數(shù)碼的個數(shù) 權(quán):每一位所具有的值 數(shù)制3.0 預(yù)備知識預(yù)備知識第1頁/共42頁2n二進制、八進制、十六進制轉(zhuǎn)換成十進制 方法:按權(quán)相加100123452)59212120212121)111011(例(10012894868381136)()(例1001231679781610162161516121)()(例AF各種進制之間的轉(zhuǎn)換各種進制之間的轉(zhuǎn)換第2頁/共42頁3n 二進制、八進制、十六進制轉(zhuǎn)換成十進制二進制、八進制、十六進制轉(zhuǎn)換成十進制n 十進制轉(zhuǎn)換成二進制、八進制、十六進制十進制轉(zhuǎn)換成二進制、八進制、十六進制方法:連

2、續(xù)除以基,從低到高記錄余數(shù),直至商為方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0例 把十進制數(shù)459轉(zhuǎn)換成十六進制數(shù)4591628161160(459)10=(1CB)161 C B 余11余12余 1各種進制之間的轉(zhuǎn)換各種進制之間的轉(zhuǎn)換(整數(shù)整數(shù))方法:按權(quán)相加方法:按權(quán)相加第3頁/共42頁4l 000 0001 1010 2011 3100 4101 5110 6111 7n 二進制與八進制之間的轉(zhuǎn)換第4頁/共42頁5l 二進制轉(zhuǎn)換成十六進制: 從右向左,每4位一組(不足4位左補0),轉(zhuǎn)換成十六進制l 十六進制轉(zhuǎn)換成二進制: 用4位二進制數(shù)代替每一位十六進制數(shù)例 2=(0011,0101

3、,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)220000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 Fn二進制與十六進制之間的轉(zhuǎn)換第5頁/共42頁6 內(nèi)存以字節(jié)為單元組成 每個字節(jié)有一個地址 一個字節(jié)一般由8個二進制位組成 每個二進位的值是0或101234567012345678910.7643251字節(jié)和位字節(jié)和位第6頁/共42頁7 原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值 反碼: 正數(shù)

4、:反碼與原碼相同 負(fù)數(shù):符號位為1,其余位對原碼取反 補碼: 正數(shù):原碼、反碼、補碼相同 負(fù)數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12數(shù)值的表示方法數(shù)值的表示方法原碼、反碼和補碼原碼、反碼和補碼第7頁/共42頁8原碼反碼補碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍0111111111111111(-127+127)0111111110000000(-

5、127+127)0111111110000000(-128+127)負(fù)數(shù)補碼轉(zhuǎn)換成十進制數(shù):最高位不動,其余位取反加1例 補碼:11111001 取反:10000110 加1: 10000111=-7(用一字節(jié)表示數(shù))第8頁/共42頁9 數(shù)據(jù)類型總表C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef字符類型字符類型char枚舉類型枚舉類型enum整整 型型實型實型單精度型float雙精度型double數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union短整型短整型short長整型長整型long整型整型int數(shù)據(jù)類型決定:1

6、. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進行的操作3.1 數(shù)據(jù)類型數(shù)據(jù)類型第9頁/共42頁10類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int 16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無unsigned

7、char80255說明說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以上表以IBM PC機為例機為例:請看請看int和和unsigned int基本數(shù)據(jù)類型第10頁/共42頁11標(biāo)識符定義:用來標(biāo)識變量、常量、函數(shù)等的字符序列。組成:只能由字母、數(shù)字、下劃線組成,且第一個字 母必須是字母或下劃線。 另:大小寫敏感,不能使用關(guān)鍵字。長度:最長32個字符命名原則:見名知意,不宜混淆,如l與I, o與0。例:判斷下列標(biāo)識符號合法性student_name #33 lotus_1_2_3 char ab _above $1233days#33char$123a

8、b3.2 3.2 常量與變常量與變量量第11頁/共42頁12 一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量:整型常量 請點擊:實型常量 請點擊:字符常量 請點擊:字符串常量 請點擊:如 #define PRICE 30 定義:程序運行時其值不能改變的量(即常數(shù))分類:符號常量:用標(biāo)識符代表常量定義格式: #define 符號常量 常量例 符號常量舉例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運行結(jié)果:total=300常量常量第12頁/共4

9、2頁13三種形式:十進制整數(shù):由數(shù)字09和正負(fù)號表示.如 123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進制整數(shù):由0 x開頭,后跟09,af,AF表示. 如0 x123,0Xff例 12 與 12L例 30000 為int型 65536 為long int 型整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是long int 型常量問題:0123 = ( )100 x123 = ( )100Xff = ( )1083291255問題:0123 = ( )100 x123 = ( )100Xff = ( )10整型常量(整常數(shù))

10、第13頁/共42頁14表示形式:十進制數(shù)形式:(必須有小數(shù)點) 如0.123, .123, 123.0, 0.0, 123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 實型常量的類型默認(rèn)double型在實型常量后加字母f或F,認(rèn)為它是float 型實型常量(實數(shù)或浮點數(shù))第14頁/共42頁aaa15定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符. 字符常量的值:該字符的ASCII碼值轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義nvradddtbf“xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進制數(shù)代表的字符水平制表退格

11、換頁反斜線雙引號2位16進制數(shù)代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示例 轉(zhuǎn)義字符舉例(ch2_001.c,ch2_004.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);運行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”C ProgramT

12、urbo C例 main() printf(“Yb=n”); 運行結(jié)果:屏幕顯示:=打印機輸出:字符常量第15頁/共42頁16字符常量與字符串常量不同定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個 0 作為字符串結(jié) 束標(biāo)志h e l l o 0例 字符串“hello”在內(nèi)存中a a 0例 a “a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; 字符串常量第16頁/共42頁17編譯程序根據(jù)變量定義為其編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元分配指定字節(jié)的內(nèi)存單元.地址int a=1, b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地

13、址地址.內(nèi)存1-3隨機數(shù) 概念:其值可以改變的量 變量名與變量值 變量定義的一般格式: 數(shù)據(jù)類型 變量1,變量2,變量n;變量初始化:定義時賦初值 例: int a,b,c; float data;決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標(biāo)識符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;變量的使用:先定義,后使用例1 int student; stadent=19; /*Undefined symbol stadent in function main 例2 float a,b,c; c=a%b;

14、 /*Illegal use of floating point in function main變量定義位置:一般放在函數(shù)開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義可執(zhí)行語句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);變量第17頁/共42頁18 占字節(jié)數(shù)隨機器不同而不同,一般占一個機器字 shortintlong 可用sizeofsizeof(類型標(biāo)識符)測量 實型變量

15、實型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供1516位有效數(shù)字 字符型變量字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進行算術(shù)運算例1: float a; a=111111.111; /* a=111111.1*/例2: double b; b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */沒有字符串變量,用字符數(shù)組存放整型變量整型變量第18頁/共42頁19/*ch2_003.c*/ #define PRICE 12

16、.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定義變量定義輸出結(jié)果運行結(jié)果:total=37.500000, ch1=d例子第19頁/共42頁20 隱式轉(zhuǎn)換什么情況下發(fā)生運算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運算時賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一 類型3.3不同類型數(shù)據(jù)間的轉(zhuǎn)換不同類型

17、數(shù)據(jù)間的轉(zhuǎn)換第20頁/共42頁21doublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例2 int i; float f; double d; long l;例1第21頁/共42頁22一般形式:一般形式:(類型名)(表達式)(類型名)

18、(表達式) 例例: (int)(x+y): (int)(x+y) (int)x+y (int)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3較高類型向較低類型轉(zhuǎn)換時可能發(fā)生精度損失問題顯式轉(zhuǎn)換(強制轉(zhuǎn)換)顯式轉(zhuǎn)換(強制轉(zhuǎn)換)第22頁/共42頁23C運算符算術(shù)運算符:(+

19、- * / % + -)關(guān)系運算符:( = !=)邏輯運算符:(! & |)位運算符 :( | &)賦值運算符:(= 及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(* &)求字節(jié)數(shù) :(sizeof)強制類型轉(zhuǎn)換:(類型)分量運算符:(. -)下標(biāo)運算符:()其它 :(( ) -)3.4 運算符和表達式運算符和表達式第23頁/共42頁24 運算符功能 與運算量關(guān)系 要求運算量個數(shù) 要求運算量類型 運算符優(yōu)先級別 結(jié)合方向 結(jié)果的類型學(xué)習(xí)運算符應(yīng)注意學(xué)習(xí)運算符應(yīng)注意第24頁/共42頁25 基本算術(shù)運算符: + - * / % 結(jié)合方向:從左向右 優(yōu)先級:

20、- -* / % - + - (2) (3) (4)說明: “-”可為單目運算符時,右結(jié)合性 兩整數(shù)相除,結(jié)果為整數(shù) %要求兩側(cè)均為整型數(shù)據(jù)例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2算術(shù)運算符和表達式2-2.51-110()第25頁/共42頁26 作用:使變量值加1或減1 種類: 前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5

21、;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4自增、自減運算符自增、自減運算符+ -+ - -第26頁/共42頁27作用:使變量值加作用:使變量值加1 1或減或減1 1種類:種類:前置前置 +i, -i (+i, -i (先執(zhí)行先執(zhí)行i+1i+1或或i-1i-1,再使用,再使用i i值)值)后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再執(zhí)行再執(zhí)行i+1i+1或或i-1i-1)說明:說明:+ - + - 不能用于常量和表達式不能用于常量和表達式, ,如如5+5+,(a+b)+(a+b)+

22、 -+ -結(jié)合方向:結(jié)合方向: 自右向左自右向左優(yōu)先級:優(yōu)先級:- + - - + - -* * / % -+ - / % -+ - (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k;例例 -i+-i+ i=3; printf( i=3; printf(“%d%d”,-i+);,-i+); 自增、自減運算符自增、自減運算符+ -+ -第27頁/共42頁28 簡單賦值運算符 符號: = 格式: 變量標(biāo)識符=表達式 作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量復(fù)合賦值運算符種類:+= -= *= /= %= = = &a

23、mp;= = |=含義: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;賦值運算符和表達式賦值運算符和表達式第28頁/共42頁29 結(jié)合方向:自右向左 優(yōu)先級: 14 左側(cè)必須是變量,不能是常量或表達式賦值表達式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;則 f=10.0例 int i; i=2.56; /結(jié)果i=2;例: a=b=c

24、=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表達式值為5,a,b,c值為5/ b=5;a=5/表達式值11,c=6,a=11/表達式值10,a=10,b=4,c=6/表達式值5,a=5,b=10,c=2說明(說明(1 1):):第29頁/共42頁30 結(jié)合方向:自右向左 優(yōu)先級: 12 左側(cè)必須是變量,不能是常量或表達式賦值表達式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等價

25、于a=a+(a=a-(a*a)/a=0 等價于a=a+(a=a*(a=a-(a=a*3)說明(說明(2 2): :第30頁/共42頁31形式:表達式1,表達式2,表達式n 結(jié)合性:從左向右 優(yōu)先級: 15 逗號表達式的值:等于表達式n的值 用途:常用于循環(huán)for語句中例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表達式值60/a=15,表達式值20/賦值表達式,表達式值18,x=18/逗號

26、表達式,表達式值18,x=3/1,2,3/3,2,3逗號運算符和表達式逗號運算符和表達式例:/*ch2_6.c*/#include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);運行結(jié)果:x=3第31頁/共42頁32 關(guān)系運算符 種類: = != 結(jié)合方向:自左向右 優(yōu)先級別:=!=優(yōu) 先 級6(高)優(yōu) 先 級7(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)關(guān)系表達式的值:是邏輯值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; ab (a

27、b)=c b+cb f=abc/表達式值1/表達式值1/表達式值0/d=1/f=0關(guān)系運算符和表達式關(guān)系運算符和表達式第32頁/共42頁33例 若a=0; b=0.5; x=0.3; 則 a=x278在C中是允許的, 值為0例 int i=1, j=7,a; a=i+(j%4!=0); 則a=2例 a0 結(jié)果為 A100 結(jié)果為10關(guān)系運算注意(關(guān)系運算注意(1)第33頁/共42頁34例 注意區(qū)分“=”與“= =” int a=0,b=1; if(a= =b) printf(“a equal to b”); else printf(“a not equal to b”);例 應(yīng)避免對實數(shù)作相等

28、或不等的判斷如 結(jié)果為可改寫為:0關(guān)系運算注意(關(guān)系運算注意(2)第34頁/共42頁35ab!a!ba&ba|b真假真假假假真真邏輯運算符 種類: ! & | 邏輯運算真值表C語言中,運算量: 0表示“假”, 非0表示“真”, 運算結(jié)果: 0表示“假”, 1表示“真”,真假假假假假真真假假真真真假真真邏輯運算符和表達式(邏輯運算符和表達式(1)第35頁/共42頁36! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|abl優(yōu)先級:l結(jié)合方向:! : 從右向左從右向左& : 從左向右從左向右| : 從左向右從左向

29、右/ (a=x) & (xb)&(xy)/(a= =b)|(x= =y)/(!a)|(ab)邏輯運算符和表達式(邏輯運算符和表達式(2)第36頁/共42頁37! (2)& (11)| (12)高低l優(yōu)先級:l結(jié)合方向: ! : 從右向左從右向左& : 從左向右從左向右 | : 從左向右從左向右例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0) 值為1邏輯運算符和表達式(邏輯運算符和表達式(3)第37頁/共42頁38! (2)& (11)| (12)高低l優(yōu)先級:l結(jié)合方向: ! : 從右向左從右向左& : 從左向右從左向右 | : 從左向右從左向右短路特性短路特性:邏輯表達式求解時,并非所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論