溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的

發(fā)布時(shí)間:2022-10-13 16:09:19 來源:億速云 閱讀:135 作者:iii 欄目:編程語言

這篇文章主要介紹“C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的”文章能幫助大家解決問題。

1.自動(dòng)類型轉(zhuǎn)換

在C語言中,自動(dòng)類型轉(zhuǎn)換遵循以下規(guī)則:

C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的

C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的

①若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算

②轉(zhuǎn)換按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算

a、若兩種類型的字節(jié)數(shù)不同,轉(zhuǎn)換成字節(jié)數(shù)高的類型

b、若兩種類型的字節(jié)數(shù)相同,且一種有符號(hào),一種無符號(hào),則轉(zhuǎn)換成無符號(hào)類型

③所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使是兩個(gè)float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算.

④char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型

⑤在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。

如果右邊量的數(shù)據(jù)類型長(zhǎng)度比左邊長(zhǎng)時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按四舍五入向前舍入,

   更正:此處在博友反饋后,代碼VS和Linux下實(shí)測(cè)丟失部分是直接舍去,而不是四舍五入;

2.強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換一般格式如下:

(類型名)(表達(dá)式)

這種強(qiáng)制類型轉(zhuǎn)換操作并不改變操作數(shù)本身

首先進(jìn)行一個(gè)實(shí)驗(yàn),分別定義一個(gè)signed int型數(shù)據(jù)和unsigned int型數(shù)據(jù),然后進(jìn)行大小比較:

unsigned int a = 20signed int b = -130b?還是b>a?實(shí)驗(yàn)證明b>a,也就是說-130>20,為什么會(huì)出現(xiàn)這樣的結(jié)果呢?

這是因?yàn)樵贑語言操作中,如果遇到無符號(hào)數(shù)與有符號(hào)數(shù)之間的操作,編譯器會(huì)自動(dòng)轉(zhuǎn)化為無符號(hào)數(shù)來進(jìn)行處理,因此a=20,b=4294967166,這樣比較下去當(dāng)然b>a了。

unsigned int a=20signed int b=-130;a + b結(jié)果輸出為4294967186,同樣的道理,在運(yùn)算之前,a=20,b被轉(zhuǎn)化為4294967166,所以a+b=4294967186

減法和乘法的運(yùn)算結(jié)果類似。 uint i=3;i * -1;問結(jié)果是多少

關(guān)于“C語言不同類型數(shù)據(jù)轉(zhuǎn)換規(guī)則是怎樣的”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI