版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)的類型轉(zhuǎn)換Teacher teaching designCONTENTS 目 錄自動類型轉(zhuǎn)換強制轉(zhuǎn)換案例剖析 交流提升案例分析 仿真演練自動類型轉(zhuǎn)換PART 01自動類型轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換方法:變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的。轉(zhuǎn)換的方法有兩種,一種是自動轉(zhuǎn)換,一種是強制轉(zhuǎn)換。自動轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型的量混合運算時,由編譯系統(tǒng)自動完成。自動轉(zhuǎn)換遵循以下規(guī)則:一、自動類型轉(zhuǎn)換(1)、自動轉(zhuǎn)換的原則不同類型的數(shù)據(jù)可以進(jìn)行混合運算,但是還要遵循一個原則:一個運算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運算”的原則。混合運算的自動轉(zhuǎn)換規(guī)則如圖所示。double float 高級longuns
2、ignedint char short 低級(2)、轉(zhuǎn)換過程中注意點說明:、當(dāng)同一表達(dá)式中各數(shù)據(jù)的類型不同時,編譯程序會自動把它們轉(zhuǎn)變成同一類型后再進(jìn)行計算。轉(zhuǎn)換優(yōu)先級按上圖箭頭所示:char/shorintunsignedlongfloatdouble即左邊級別低的類型向右邊轉(zhuǎn)換。具體地說,若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是double型,則此表達(dá)式中其他數(shù)據(jù)均轉(zhuǎn)換成double 型,且結(jié)果也是double型;自動類型轉(zhuǎn)換、賦值過程中類型轉(zhuǎn)換:C語言賦予了賦值表達(dá)式類型轉(zhuǎn)換功能,一旦出現(xiàn)變量和表達(dá)式類型不一致時,會自動進(jìn)行類型轉(zhuǎn)換,將表達(dá)式的值向變量類型方向進(jìn)行轉(zhuǎn)換。類型轉(zhuǎn)換有前提必須是相近的且
3、可以轉(zhuǎn)換的才能進(jìn)行,主要包括如下表中幾種情況: 如,設(shè)x 是整型數(shù),y是單精度實型數(shù),z是雙精度實型數(shù),則: x+a 的值是整型數(shù); x+1.5的值是雙精度實型數(shù); x+y的值是雙精度實型數(shù); x+y+z+x的值 是雙精度實型數(shù); a+a的值是整型數(shù); y+y的值也是雙精度實型數(shù)。變量類型變量類型表達(dá)式類型表達(dá)式類型轉(zhuǎn)換方式轉(zhuǎn)換方式整型整型實型實型截取小數(shù)部分截取小數(shù)部分實型實型整型整型小數(shù)部分補小數(shù)部分補0 0單精度實型單精度實型雙精度型實型雙精度型實型截取小數(shù)部分剩截取小數(shù)部分剩7 7位有效數(shù)字位有效數(shù)字雙精度實型雙精度實型單精度實型單精度實型小數(shù)部分補小數(shù)部分補0 0到到1616位位字符
4、型字符型整型整型低低8 8位送至字符變量一個字節(jié)的存儲單元位送至字符變量一個字節(jié)的存儲單元整型整型字符型字符型ASCASC碼送至整型變量低碼送至整型變量低8 8位位, ,若是帶符號且若是帶符號且ASCASC碼碼最高位為最高位為1,1,則補則補1,1,否則補否則補0.0.強制轉(zhuǎn)換PART 02強制轉(zhuǎn)換強制轉(zhuǎn)換(1)強制轉(zhuǎn)換的表示形式是: (類型說明符)其功能是把表達(dá)式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型。強制類型轉(zhuǎn)換符的對象是表達(dá)式,包括常量,變量,函數(shù)和表達(dá)式,把圓括號括起來的類型名稱放置在預(yù)轉(zhuǎn)換的表達(dá)式前面。例如: (float)x 把x轉(zhuǎn)換為實型 (int)(a-b) 把a-b的結(jié)果
5、轉(zhuǎn)換為整型 (int)a-b 把a轉(zhuǎn)換為整型再與b相減在使用強制轉(zhuǎn)換時應(yīng)注意以下問題:1、類型說明符和表達(dá)式都必須加括號(單個變量可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉(zhuǎn)換成int型之后再與y相加了。2、無論是強制轉(zhuǎn)換或是自動轉(zhuǎn)換,都只是為了本次運算的需要而對變量的數(shù)據(jù)長度進(jìn)行的臨時性轉(zhuǎn)換,而不改變數(shù)據(jù)說明時對該變量定義的類型,如下程序所示。main( ) float x; int y; x=3.6; y=(int)x; printf(%f,%d,x,y); 運行結(jié)果為:3.600000 , 3案例剖析 交流提升PART 03案例剖析 交流提升【例1】、分析以下
6、程序main()float a=12.3456;a=(int)(a*100+0.5)/100.0;printf(“a=%f”,a);程序運行的結(jié)果為:a=12.350000思考分析:(1)、由于(int) 的作用,(int)(a*100+0.5)運算的結(jié)果為為整型1235,(2)、除100.0運算時自動轉(zhuǎn)換為實型12.350000,所以結(jié)果為12.35。2、強制轉(zhuǎn)換的注意點、強制轉(zhuǎn)換類型得到的是一個所需類型的中間量,原表達(dá)式類型并不發(fā)生變化。也就是說強制的結(jié)果只是把變量值轉(zhuǎn)換成要求的類型后參與所在環(huán)境運算,而變量本身的 類型 和 值 并未改變。例如,(double)a 只是將變量a的值轉(zhuǎn)換成一
7、個double型的中間量,其數(shù)據(jù)類型并未轉(zhuǎn)換成double型。、如果對一個整體表達(dá)式進(jìn)行類型轉(zhuǎn)換,要注意在表達(dá)式前后加上圓括號,以免出現(xiàn)只對表達(dá)式前面部分轉(zhuǎn)換的情況。如(int)(x+y)和(int)x+y不同:(int)(x+y)是將x和y相加后,把結(jié)果轉(zhuǎn)換為整型,而(int)x+y是把x轉(zhuǎn)換成int型之后再與y相加。、當(dāng)有些類型無法轉(zhuǎn)換時,需要強制類型轉(zhuǎn)換的支持。案例剖析 交流提升【例2】main()float a=12.34;int b; b=(int)a; printf( %d, %f,b,a);程序運行結(jié)果:12, 12.340000b是int型,a是float類型并不改變。3、無論
8、是強制轉(zhuǎn)換或是自動轉(zhuǎn)換,如果要轉(zhuǎn)換的量超過了轉(zhuǎn)換后類型的表示范圍,將出現(xiàn)溢出錯誤或不可預(yù)料的結(jié)果。如:main() int a;float b=123456;a=b;printf(“a=%d”,a);程序運行結(jié)果:a=0仿真演練 體驗探索PART 04仿真演練 體驗探索1、分析下列程序的輸出結(jié)果是( ) main( ) double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%d n, d*y); A) 3 B) 3.2 C) 0 D) 3.07思考題:數(shù)據(jù)類型自動轉(zhuǎn)換對程序輸出結(jié)果的影響?2、數(shù)字字符0的ASCII值為48,若有以下程序運行后的
9、輸出結(jié)果是 ( ) 。main() char a=1,b=2; printf(%c,b+1); printf(%dn,b-a); A)3,1 B)50,2 C)2,2 D)2,50 思考題:字符型數(shù)據(jù)與整型數(shù)據(jù)之間的轉(zhuǎn)換方法?3、下列程序執(zhí)行后的輸出結(jié)果是 A) G B) H C) I D) Jmain() int x=f; printf(%c n,A+(x-a+1); 思考: 允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,同樣也允許允許對整型變量賦以字符值,把整型量按字符量輸出。 仿真演練 體驗探索4、設(shè)有char w;int x;float y;double z; 則表達(dá)式 w*x+z-y 值的數(shù)據(jù)類型為( )A)float B)char C)int D)double5、已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量101是( )A) 字符A B)字符a C)字符e D)非法的常量6、若變量a是int類型,并執(zhí)行了語句:a=A+1.6;,則正確的敘述是( )A) a的值是字符C B) a的值是浮點型C) 不允許字符型和浮點型相加 D) a的值是字符A的ASCII值加上1。7、以下程序的輸
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小額貸款抵押合同資產(chǎn)評估及報告協(xié)議2篇
- 2025年度個人與公司租賃房屋修繕責(zé)任合同4篇
- 2025年度個人旅游規(guī)劃與導(dǎo)游服務(wù)合同2篇
- 2025版室外照明燈具廣告宣傳與品牌推廣合同3篇
- 2025年度煤炭行業(yè)綠色運輸體系構(gòu)建合同4篇
- 2025標(biāo)準(zhǔn)新能源材料研發(fā)與采購合作協(xié)議3篇
- 2025年度生態(tài)環(huán)保瓷磚批量采購合作協(xié)議3篇
- 2025版醫(yī)療健康大數(shù)據(jù)合作開發(fā)合同3篇
- 個性化定制小區(qū)房產(chǎn)買賣合同(2024版)版B版
- 2025版國際貿(mào)易糾紛訴訟擔(dān)保委托服務(wù)協(xié)議3篇
- 五年級上冊寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團限公司招聘25人高頻重點提升(共500題)附帶答案詳解
- 2024年財政部會計法律法規(guī)答題活動題目及答案一
- 2025年江西省港口集團招聘筆試參考題庫含答案解析
- (2024年)中國傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會考試題庫
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項目合作開發(fā)合同協(xié)議書三方版
- 2024年秋季新滬教版九年級上冊化學(xué)課件 第2章 空氣與水資源第1節(jié) 空氣的組成
評論
0/150
提交評論