下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言中強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換的總結(jié)字符型變量的值實(shí)質(zhì)上是一個(gè) 8位的整數(shù)值,因此取值范圍一般是 -128127, char型變量也可以加修飾符 unsigned,貝U unsigned c har型變量的取值范圍是0255(有些機(jī)器把char型當(dāng)做unsighed char型對(duì)待,取值范圍總是0255)。如果一個(gè)運(yùn)算符兩邊的運(yùn)算數(shù)類型不同,先要將其轉(zhuǎn)換為相同的類 型,即較低類型轉(zhuǎn)換為較高類型,然后再參加運(yùn)算,轉(zhuǎn)換規(guī)則如下圖 所示。double <float 高flongun sig nedfintchar,short 低圖中橫向箭頭表示必須的轉(zhuǎn)換,如兩個(gè) float型數(shù)參加運(yùn)算,雖然 它們類
2、型相同,但仍要先轉(zhuǎn)成 double型再進(jìn)行運(yùn)算,結(jié)果亦為dou ble型。縱向箭頭表示當(dāng)運(yùn)算符兩邊的運(yùn)算數(shù)為不同類型時(shí)的轉(zhuǎn)換, 如一個(gè)long型數(shù)據(jù)與一個(gè)int型數(shù)據(jù)一起運(yùn)算,需要先將int型數(shù)據(jù) 轉(zhuǎn)換為long型,然后兩者再進(jìn)行運(yùn)算,結(jié)果為long型。所有這些 轉(zhuǎn)換都是由系統(tǒng)自動(dòng)進(jìn)行的,使用時(shí)你只需從中了解結(jié)果的類型即可。這些轉(zhuǎn)換可以說(shuō)是自動(dòng)的,但然,C語(yǔ)言也提供了以顯式的形式強(qiáng)制轉(zhuǎn)換類型的機(jī)制。 當(dāng)較低類型的數(shù)據(jù)轉(zhuǎn)換為較高類型時(shí),一般只是形式上有所改變, 而不影響數(shù)據(jù)的實(shí)質(zhì)內(nèi)容, 而較高類型的數(shù)據(jù)轉(zhuǎn)換為較低類型時(shí)則 可能有些數(shù)據(jù)丟失。賦值中的類型轉(zhuǎn)換當(dāng)賦值運(yùn)算符兩邊的運(yùn)算對(duì)象類型不同時(shí),將
3、要發(fā)生類型轉(zhuǎn)換, 轉(zhuǎn) 換的規(guī)則是:把賦值運(yùn)算符右側(cè)表達(dá)式的類型轉(zhuǎn)換為左側(cè)變量的類 型。具體的轉(zhuǎn)換如下:(1) 浮點(diǎn)型與整型 將浮點(diǎn)數(shù) (單雙精度 )轉(zhuǎn)換為整數(shù)時(shí),將舍棄浮點(diǎn)數(shù)的小數(shù)部分, 只保留整數(shù)部分。將整型值賦給浮點(diǎn)型變量,數(shù)值不變,只將形式改為浮點(diǎn)形式, 即 小數(shù)點(diǎn)后帶若干個(gè) 0。注意:賦值時(shí)的類型轉(zhuǎn)換實(shí)際上是強(qiáng)制的。(2) 單、雙精度浮點(diǎn)型由于C語(yǔ)言中的浮點(diǎn)值總是用雙精度表示的,所以float型數(shù)據(jù)只 是在尾部加 0 延長(zhǎng)為 doub1e 型數(shù)據(jù)參加運(yùn)算,然后直接賦值。 dou b1e 型數(shù)據(jù)轉(zhuǎn)換為 float 型時(shí),通過(guò)截尾數(shù)來(lái)實(shí)現(xiàn),截?cái)嗲耙M(jìn)行四 舍五入操作。(3) char 型與
4、 int 型 int 型數(shù)值賦給 char 型變量時(shí),只保留其最低 8 位,高位部分舍棄。 chr 型數(shù)值賦給 int 型變量時(shí),一些編譯程序不管其值大小都作正 數(shù)處理,而另一些編譯程序在轉(zhuǎn)換時(shí),若 char 型數(shù)據(jù)值大于 127, 就作為負(fù)數(shù)處理。對(duì)于使用者來(lái)講,如果原來(lái) char 型數(shù)據(jù)取正值, 轉(zhuǎn)換后仍為正值 ;如果原來(lái) char 型值可正可負(fù),則轉(zhuǎn)換后也仍然保持 原值,只是數(shù)據(jù)的內(nèi)部表示形式有所不同。(4) int 型與 1ong 型 long 型數(shù)據(jù)賦給 int 型變量時(shí),將低 16 位值送給 int 型變量,而將 高 16 位截?cái)嗌釛墶?(這里假定 int 型占兩個(gè)字節(jié) )。將 i
5、nt 型數(shù)據(jù)送給 long 型變量時(shí),其外部值保持不變,而內(nèi)部形式有 所改變。(5) 無(wú)符號(hào)整數(shù) 將一個(gè) unsigned 型數(shù)據(jù)賦給一個(gè)占據(jù)同樣長(zhǎng)度存儲(chǔ)單元的整型變量時(shí)(女口: unsigned int、unsigned long long , unsigned short f hort) ,原值照賦,內(nèi)部的存儲(chǔ)方式不變,但外部值卻可能改變。將一個(gè)非unsigned整型數(shù)據(jù)賦給長(zhǎng)度相同的unsigned型變量時(shí), 內(nèi)部存儲(chǔ)形式不變,但外部表示時(shí)總是無(wú)符號(hào)的。/*例:賦值運(yùn)算符舉例 */main() unsigned a,b;int i,j;a="65535"j="
6、;a"b="i"prin tf("(u nsig ned)%u (Ht)%dn",a,j); pri ntf("(i nt)%d (un sig ned)%Ui,b);運(yùn)行結(jié)果為:(unsigned)65535 (int)-1(int)-1(unsigned)65535計(jì)算機(jī)中數(shù)據(jù)用補(bǔ)碼表示,int型量最高位是符號(hào)位,為1時(shí)表示 負(fù)值,為 0 時(shí)表示正值。如果一個(gè)無(wú)符號(hào)數(shù)的值小于 32768 則最高 位為 0,賦給 int 型變量后、得到正值。如果無(wú)符號(hào)數(shù)大于等于 32768 , 則最高位為 1,賦給整型變量后就得到一個(gè)負(fù)整數(shù)值。反之
7、,當(dāng)一 個(gè)負(fù)整數(shù)賦給 unsigned 型變量時(shí),得到的無(wú)符號(hào)值是一個(gè)大于 32768 的值。C 語(yǔ)言這種賦值時(shí)的類型轉(zhuǎn)換形式可能會(huì)使人感到不精密和不嚴(yán) 格,因?yàn)椴还鼙磉_(dá)式的值怎樣,系統(tǒng)都自動(dòng)將其轉(zhuǎn)為賦值運(yùn)算符左部 變量的類型。 而轉(zhuǎn)變后數(shù)據(jù)可能有所不同,在不加注意時(shí)就可能帶來(lái)錯(cuò)誤。 這 確實(shí)是個(gè)缺點(diǎn),也遭到許多人們批評(píng)。但不應(yīng)忘記的是: c 面言最初 是為了替代匯編語(yǔ)言而設(shè)計(jì)的,所以類型變換比較隨意。當(dāng)然, 用 強(qiáng)制類型轉(zhuǎn)換是一個(gè)好習(xí)慣, 這樣,至少?gòu)某绦蛏峡梢钥闯鱿敫墒裁础K阈g(shù)運(yùn)算中間結(jié)果與數(shù)據(jù)類型C 語(yǔ)言算術(shù)表達(dá)式的計(jì)算,在計(jì)算過(guò)程中,每一步計(jì)算所得結(jié)果的數(shù)據(jù) 類型由參與運(yùn)算的運(yùn)算對(duì)象決定, 相同數(shù)據(jù)類型的兩個(gè)對(duì)象運(yùn)算, 結(jié)果數(shù)據(jù)類型 不變,不同數(shù)據(jù)類型的運(yùn)算對(duì)象進(jìn)行運(yùn)算, 結(jié)果的數(shù)據(jù)類型由高精度的運(yùn)算對(duì)象 決定。精度的高低: double>float>int 需要注意的是, 數(shù)據(jù)類型的轉(zhuǎn)換是在計(jì)算過(guò)程中逐步進(jìn)行的 ,整個(gè)表達(dá)式結(jié)果的 數(shù)據(jù)類型一定與表達(dá)式中出現(xiàn)的精度最高的數(shù)據(jù)相同, 但是具體得到數(shù)據(jù)值是逐 步得到的,例如: int x=1,y=3; double k=1573.267;x / y * k 這個(gè)表達(dá)式計(jì)算結(jié)果的數(shù)據(jù)類型是 double, 計(jì)算結(jié)果的答案是 0.0 因?yàn)樵诘谝徊?x/y 的計(jì)算中 結(jié)果是一個(gè)整型數(shù)據(jù) 0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版八年級(jí)地理上冊(cè)2.2《氣候》聽課評(píng)課記錄2
- 人教部編版歷史八年級(jí)下冊(cè):第8課《經(jīng)濟(jì)體制改革》聽課評(píng)課記錄2
- 2022版新課標(biāo)七年級(jí)上冊(cè)道德與法治第七課親情之愛3課時(shí)聽課評(píng)課記錄
- 聽評(píng)課記錄表1年級(jí)
- 北師大版歷史八年級(jí)上冊(cè)第7課《義和團(tuán)抗擊八國(guó)聯(lián)軍》聽課評(píng)課記錄
- 魯教版數(shù)學(xué)七年級(jí)上冊(cè)1.2《圖形的全等》聽評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)《2.2 命題與證明》聽評(píng)課記錄
- 小學(xué)二年級(jí)乘法口算練習(xí)題
- 五年級(jí)分?jǐn)?shù)乘法口算題卡
- 人教版七年級(jí)道德與法治七年級(jí)上冊(cè)聽課評(píng)課記錄:第四單元 生命的思考第十課《綻放生命之花》第二課時(shí)活出生命的精彩
- 危險(xiǎn)化學(xué)品目錄2023
- TSXDZ 052-2020 煤礦礦圖管理辦法
- GB/T 7631.18-2017潤(rùn)滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第18部分:Y組(其他應(yīng)用)
- 2022年第六屆【普譯獎(jiǎng)】全國(guó)大學(xué)生英語(yǔ)翻譯大賽
- GB/T 14258-2003信息技術(shù)自動(dòng)識(shí)別與數(shù)據(jù)采集技術(shù)條碼符號(hào)印制質(zhì)量的檢驗(yàn)
- 政府資金項(xiàng)目(榮譽(yù))申報(bào)獎(jiǎng)勵(lì)辦法
- 最新如何進(jìn)行隔代教育專業(yè)知識(shí)講座課件
- 當(dāng)前警察職務(wù)犯罪的特征、原因及防范,司法制度論文
- 奧特萊斯專題報(bào)告(經(jīng)典)-課件
- 《新制度經(jīng)濟(jì)學(xué)》配套教學(xué)課件
- 計(jì)算機(jī)文化基礎(chǔ)單元設(shè)計(jì)-windows
評(píng)論
0/150
提交評(píng)論