C語言程序設(shè)計(十分詳細(xì)).ppt
《C語言程序設(shè)計(十分詳細(xì)).ppt》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計(十分詳細(xì)).ppt(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
C數(shù)據(jù)類型及其運算,C語言程序設(shè)計,2,C語言的數(shù)據(jù)類型,C數(shù)據(jù)類型,3,整型數(shù)據(jù),1.整型數(shù)據(jù)的類型基本整型數(shù)據(jù)int,分配2Byte短整型數(shù)據(jù)shortint,分配2Byte長整型數(shù)據(jù)longint,分配4Byte整型數(shù)據(jù)均以二進(jìn)制補(bǔ)碼形式存儲,問題:為什么要采用補(bǔ)碼?如何表示?,4,計算機(jī)中正、負(fù)數(shù)的表示,例如:109=(1101101)2要區(qū)別:+109和-109方法是:將符號也數(shù)碼化即:正的符號+用0表示負(fù)的符號-用1表示,∴計算機(jī)中的數(shù)表示方法是:符號位+二進(jìn)制數(shù)值(以8bit為例)+109→+1101101→01101101-109→-1101101→11101101,5,2.有符號和無符號整型數(shù)據(jù),有符號的整型數(shù)據(jù)signedint無符號的整型數(shù)據(jù)unsignedint區(qū)別是將最高位看作符號位還是數(shù)據(jù)位,例如:1111111110101000作為有符號數(shù)使用時,最高為符號位為負(fù)數(shù),值是:-88作為無符號數(shù)使用時,最高為數(shù)據(jù)位為無符號的數(shù),值是:65448,6,例如:,main(){unsignedintm;m=65448;printf("\nm=%d\n",m);printf("m=%u\n",m);},輸出結(jié)果:m=-88m=65448,按有符號數(shù)輸出,按無符號數(shù)輸出,7,整型數(shù)據(jù)的類型及規(guī)定,方括號表示可選項int分配2Byte,long分配4Byte,8,2.1.2實型數(shù)據(jù),1.實型數(shù)據(jù)的類型單精度實型數(shù)據(jù)float,分配4Byte雙精度實型數(shù)據(jù)double,分配8Byte2.實型數(shù)據(jù)的存儲,單精度實型,指數(shù)部分,小數(shù)部分,,,,,小數(shù)的符號位,指數(shù)的符號位,9,實型數(shù)據(jù)的類型及規(guī)定,C標(biāo)準(zhǔn)并未具體規(guī)定各種實型數(shù)據(jù)所占字節(jié)數(shù),也不規(guī)定具體小數(shù)和指數(shù)部分的位數(shù)。一般而言,小數(shù)部分位數(shù)多,數(shù)據(jù)表示的有效數(shù)字多,精度就高;而指數(shù)部分位數(shù)多,則表示的數(shù)據(jù)范圍更大。,有效數(shù)字的意義?,10,字符型數(shù)據(jù),字符型數(shù)據(jù)char,分配1Byte字符型數(shù)據(jù)是指字母、數(shù)字、各種符號等用ASCII值表示的字符例如‘a(chǎn)’是一個char類型數(shù)據(jù),稱作字符常量,存儲:單片機(jī)中常用int和char數(shù)據(jù)類型。,01100001,2.1.4空類型,空類型void通常與指針或函數(shù)結(jié)合使用,11,常量、變量與標(biāo)準(zhǔn)函數(shù),主要內(nèi)容:常量變量,12,2.2.1常量,在運行程序的過程中值保持不變的量1.整型常量十進(jìn)制:0~9八進(jìn)制:0~7,以0開頭十六進(jìn)制:0~9,A~F/a~f,以0 x或0X開頭(單片機(jī)編程常用16進(jìn)制),例如:100-80+12301002401000730 x380 x100X100XFF0 x0a,13,1.整型常量,整型常量的類型:根據(jù)值大小默認(rèn)類型。整型常量后面加l或L,則認(rèn)為是longint型例如:123L、0L、432l、0 x100l,注意:十六進(jìn)制常量中可以使用大寫字母A~F,也可以使用小寫字母a~f。八進(jìn)制常量中不能出現(xiàn)數(shù)字8或9例如:018、0921非法,14,2.實型(浮點型)常量,十進(jìn)制形式1.01.+12.0-12.00.0指數(shù)形式1e31.8e-3-123E-6-.1E-3,指數(shù)只能是整數(shù),而尾數(shù)則可以是整數(shù)也可以是小數(shù),無論指數(shù)或尾數(shù)均不能省略例如:1e、E.5、E-3非法實型常量的類型:默認(rèn)為double型,后面加F(或f),則強(qiáng)調(diào)表示該數(shù)是float類型例如:3.5f、1e2F,15,3.字符型常量,可視字符常量單引號括起來的單個可視字符例如:a、A、+、3、等轉(zhuǎn)義字符常量單引號括起來的\與可視字符組合,例如:,16,4.字符串常量,用雙引號括起的一個字符序列例如:"ABC"、"123"、"a"、"\n\t""\nGoodmorning"字符串常量的長度:所包含的字符個數(shù)字符串常量的存儲方式:,所占存儲單元數(shù):串長度+1例如:,字符串結(jié)束標(biāo)記,,,17,5.符號常量,以標(biāo)識符來代表的常量事先編譯預(yù)處理命令define定義編譯時先由系統(tǒng)替換為它所代表的常量,再進(jìn)行編譯例如:,#defineLEN2.5main(){floata,b;a=2*3.14*LEN;b=3.14*LEN*LEN;printf("a=%f,b=%f\n",a,b);},編譯前系統(tǒng)進(jìn)行替換,18,5.符號常量,main(){floata,b;a=2*3.14*2.5;b=3.14*2.5*2.5;printf("a=%f,b=%f\n",a,b);},define是編譯預(yù)處理命令,必須以“#”開頭,替換為,,,19,變量,1.變量的有關(guān)概念在程序運行過程中,其值改變的數(shù)據(jù),稱為變量,變量用標(biāo)識符表示,稱為變量名。變量必須“先定義后使用”系統(tǒng)為變量分配存儲單元,存儲變量的值。編寫程序時通過變量名來存、取變量值。,例如:有變量a它的值是510,20,變量定義,變量定義的一般格式:數(shù)據(jù)類型說明符變量列表;例如:inti,j;longk,m;floatx,y;charch1,ch2;,,必須使用合法的標(biāo)識符作變量名不能使用關(guān)鍵字為變量命名,21,3.變量的初始化:,允許在說明變量的時候?qū)ψ兞抠x初值。例如:inta=5,b=10+2;doublex=23.568,y;charch1=a,ch2=66,ch3=\142;表示定義變量并對變量存儲單元賦值。錯誤的初始化:inta=3+b,b=5;floatm=n=23.16;,22,運算符和表達(dá)式,主要內(nèi)容:算術(shù)運算符和算術(shù)表達(dá)式賦值運算符和賦值表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式邏輯運算符和邏輯表達(dá)式位運算符和位運算表達(dá)式條件運算符和條件表達(dá)式逗號運算符和逗號表達(dá)式其他運算符及其運算,23,運算符的有關(guān)概念,作用:對運算對象完成規(guī)定的操作運算類型:按運算對象分:單目、雙目、三目按功能分:算術(shù)、賦值、關(guān)系、邏輯條件、逗號、位、其他,24,運算符的優(yōu)先級和結(jié)合性,優(yōu)先級指各種運算符號的運算優(yōu)先順序例如:算術(shù)運算優(yōu)先于關(guān)系運算算術(shù)運算中先*/后+-,結(jié)合性指運算符號和運算對象的結(jié)合方向分為:從左向右(左結(jié)合)和從右向左(右結(jié)合)例如:算術(shù)運算符為左結(jié)合a-b+4賦值運算符為右結(jié)合a=b=5(C語言規(guī)定見教材),25,運算符,+-*/%++--+-=+=-=*=/=%=a=a+1表達(dá)式的值為5,且a=6,b=5,31,說明:,++和--的運算對象只能是變量(或運算結(jié)果是變量的表達(dá)式),不能是常量(或運算結(jié)果是數(shù)值的表達(dá)式)。例如:5++、(a+2)++不合法。具有右結(jié)合性,結(jié)合方向為從右到左。例如:–a++等價于-(a++)如果有多個運算符連續(xù)出現(xiàn)時,C系統(tǒng)盡可能多的從左到右將字符組合成一個運算符例如:i+++j等價于(i++)+j-i+++-j等價于-(i++)+(-j),32,main(){inta=5;printf("%d%d\n",a,a++);},說明(續(xù)):,對函數(shù)參數(shù)的求值順序:TurboC系統(tǒng)先計算最右邊的參數(shù)值,再依次計算左面的參數(shù)值。,【例2.5】有多個函數(shù)參數(shù)且為同一變量自增的運算處理。,輸出結(jié)果:65,運行例2.5,33,說明(續(xù)):,【例2.6】有多個函數(shù)參數(shù)且為同一變量多次自增的運算處理。,main(){inta=5;printf("%d%d\n",a,(a++)+(a++));},輸出結(jié)果:711,運行例2.6,34,賦值運算,賦值運算符(右結(jié)合)=+=-=*=/=%=printf("%d%d\n",a},輸出結(jié)果:8102-11,0000000000001010&00000000000010000000000000001000即:a&b的值是8,運行jc2_b,45,HEX文件,IntelHEX由任意數(shù)量的十六進(jìn)制記錄組成。每個記錄包含5個域,它們按以下格式排列::llaaaatt[dd...]cc每一組字母對應(yīng)一個不同的域,每一個字母對應(yīng)一個十六進(jìn)制編碼的數(shù)字。每一個域由至少兩個十六進(jìn)制編碼數(shù)字組成,它們構(gòu)成一個字節(jié),就像以下描述的那樣:,46,HEX文件,:每個IntelHEX記錄都由冒號開頭.ll是數(shù)據(jù)長度域,它代表記錄當(dāng)中數(shù)據(jù)字節(jié)(dd)的數(shù)量。aaaa是地址域,它代表記錄當(dāng)中數(shù)據(jù)的起始地址。tt是代表HEX記錄類型的域,它可能是以下數(shù)據(jù)當(dāng)中的一個:00–數(shù)據(jù)記錄01–文件結(jié)束記錄02–擴(kuò)展段地址記錄04–擴(kuò)展線性地址記錄dd是數(shù)據(jù)域,它代表一個字節(jié)的數(shù)據(jù)。一個記錄可以有許多數(shù)據(jù)字節(jié).記錄當(dāng)中數(shù)據(jù)字節(jié)的數(shù)量必須和數(shù)據(jù)長度域(ll)中指定的數(shù)字相符。cc是校驗和域,它表示這個記錄的校驗和。校驗和的計算是通過將記錄當(dāng)中所有十六進(jìn)制編碼數(shù)字對的值相加,以256為模進(jìn)行以下補(bǔ)足。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言程序設(shè)計 十分 詳細(xì)
鏈接地址:http://ioszen.com/p-11494824.html