資源描述:
《C語言第2章C語言的基本數(shù)據(jù)類型與表達(dá)式.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第2章C語言的基本數(shù)據(jù)類型與表達(dá)式2.1C語言的基本數(shù)據(jù)類型2.2常量與變量2.3運(yùn)算符與表達(dá)式2.4數(shù)據(jù)類型轉(zhuǎn)換教學(xué)目的和基本要求:要求學(xué)生清楚數(shù)據(jù)類型與變量、常量的關(guān)系,掌握各種常量的性質(zhì)和定義,掌握表達(dá)式中各種運(yùn)算符的功能和特點(diǎn),明白產(chǎn)生副作用的原因,了解數(shù)據(jù)類型的相互轉(zhuǎn)換規(guī)則。教學(xué)重點(diǎn):數(shù)據(jù)類型、常量定義,運(yùn)算符與表達(dá)式。存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲(chǔ)格式和所占的存儲(chǔ)長度,C語言中把這三者結(jié)合起來,給出幾種固定的形式,這些形式就是最基本的數(shù)據(jù)類型。2.1C語言的基本數(shù)據(jù)類型為什么要設(shè)置數(shù)據(jù)類型?在計(jì)算機(jī)中使
2、用一定長度的存儲(chǔ)單元(通常是字節(jié)的倍數(shù))來存儲(chǔ)數(shù)據(jù)。存儲(chǔ)的編碼方式有:原碼、反碼、補(bǔ)碼、ASCII碼……存儲(chǔ)的存儲(chǔ)格式有:定點(diǎn)型、浮點(diǎn)型……其中,用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元的長度決定了數(shù)據(jù)取值范圍的大小。例如:【例2.1】計(jì)算圓的面積,半徑為5cm。程序如下:main(){floatr,area;r=5;area=3.14*r*r;printf("%f",area);}運(yùn)算結(jié)果是輸出圓的面積:78.500000程序中用到的數(shù)據(jù):r、area、5、3.14對(duì)數(shù)據(jù)進(jìn)行的運(yùn)算:*、=例jc2_1分析:計(jì)算機(jī)操作處理時(shí),要完成以下
3、工作:在內(nèi)存中給半徑r和運(yùn)算結(jié)果area開辟存儲(chǔ)空間,存放它們的值。應(yīng)該留多大的地方來存放它們的值?數(shù)據(jù)5和3.14與r、area不同,它們是在編寫程序時(shí)就給出確定的值,在運(yùn)算過程中不會(huì)改變。這樣的數(shù)計(jì)算機(jī)怎么處理?對(duì)整數(shù)5和小數(shù)3.14,計(jì)算機(jī)存放時(shí)是否有區(qū)別?涉及數(shù)據(jù)類型的基本知識(shí)字符型(char)整型(int,short,long,unsigned,longlong)單精度型(float)實(shí)型雙精度型(double)長雙精度(longlong_comple)枚舉類型(enum)數(shù)組類型([])構(gòu)造類型結(jié)構(gòu)體類型(st
4、ruct)共用體類型(union)指針類型(*)空類型(void)基本類型數(shù)據(jù)類型一、數(shù)據(jù)類型概述本章討論基本類型數(shù)據(jù)變量:指以標(biāo)識(shí)符為名字,其值可以改變的量。在學(xué)習(xí)各種數(shù)據(jù)類型之前,我們先簡(jiǎn)單了解一下常量和變量的概念。后面的章節(jié)中將會(huì)詳細(xì)介紹。常量:指在程序運(yùn)行中,其數(shù)值不能被改變的量。變量代表計(jì)算機(jī)內(nèi)存中的某一存儲(chǔ)空間,變量的類型決定了該存儲(chǔ)空間的長度和其中存放數(shù)據(jù)的編碼方式及存儲(chǔ)格式。變量的類型也決定了該存儲(chǔ)空間中存放數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。*八進(jìn)制的數(shù)碼范圍為0~7;018?*十六進(jìn)制的數(shù)碼除了數(shù)字0~9外,還使
5、用英文字母a~f(或A~F)表示10~15。如:0x1e√*整型數(shù)據(jù)均以二進(jìn)制補(bǔ)碼形式存儲(chǔ)注意!二、整型(采用定點(diǎn)整數(shù)的存儲(chǔ)格式,只能表示純整數(shù))1、整型常量:(1)十進(jìn)制形式:與數(shù)學(xué)上的整數(shù)表示相同;例如:12,-100,0(2)八進(jìn)制形式:在數(shù)碼前加數(shù)字0;例如:012=1*81+2*80=10(十進(jìn)制)(3)十六進(jìn)制形式:在數(shù)碼前加0X(數(shù)字0和字母X)。例如:0x12=1*161+2*160=18(十進(jìn)制)問題:為什么要采用補(bǔ)碼?如何表示?計(jì)算機(jī)中正、負(fù)數(shù)的表示例如:109=(1101101)2要區(qū)別:+109和-
6、109方法是:將符號(hào)也數(shù)碼化即:正的符號(hào)+用0表示負(fù)的符號(hào)-用1表示∴計(jì)算機(jī)中的數(shù)表示方法是:符號(hào)位+二進(jìn)制數(shù)值(以8bit為例)+109→+1101101→01101101-109→-1101101→11101101問題:計(jì)算機(jī)計(jì)算復(fù)雜化例如計(jì)算:(-19)+(+22)10010011+00010110解決的方法是:使用反碼或補(bǔ)碼的表示方法(按前述表示的編碼稱為原碼),即能將減法一律轉(zhuǎn)換為加法。需要判斷符號(hào)是否相同:如果相同,結(jié)果符號(hào)不變,并進(jìn)行絕對(duì)值相加如果不同,結(jié)果取絕對(duì)值大的數(shù)的符號(hào),并進(jìn)行絕對(duì)值相減原碼、反碼和補(bǔ)
7、碼正數(shù):原碼、反碼、補(bǔ)碼相同符號(hào)位為0,數(shù)值為對(duì)應(yīng)的二進(jìn)制數(shù)。+109[01101101]原=[01101101]反=[01101101]補(bǔ)負(fù)數(shù):原碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)。-109[11101101]原反碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)各位變反。-109[10010010]反補(bǔ)碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)各位變反加1。-109[10010011]補(bǔ)2、整型變量的分類:根據(jù)數(shù)據(jù)所占的存儲(chǔ)長度的不同分為:int、short、long、longlong;同樣存儲(chǔ)長度的數(shù)據(jù)又分unsigned、signe
8、d;故可組合出八種類型(參考課本P46)。3、整型變量的值域:由機(jī)器中數(shù)據(jù)的存儲(chǔ)長度決定思考:inta=20000,b=20000,c;c=a+b;c的值為多少?如果c定義為long型是否能解決問題?類型名稱類型符bit取值范圍整型(短整型)[signed]int[signed]short[int]16