您現(xiàn)在的位置:首頁 > 綜合 > 特別關(guān)注 > 正文

【C語言】關(guān)于整型提升、截?cái)唷⒋蛴?shù)據(jù)的結(jié)果

時(shí)間:2023-04-16 14:14:12    來源:騰訊云    

一:先介紹一下相關(guān)概念

1.整型提升:

(1)應(yīng)用場(chǎng)景數(shù)字有整數(shù)和小數(shù),對(duì)應(yīng)c語言中的整型和浮點(diǎn)型,由此可見當(dāng)整數(shù)發(fā)生運(yùn)算時(shí),那其實(shí)就意味著整形運(yùn)算,我們還知道如果小于整形的類型發(fā)生整型運(yùn)算時(shí),那就要進(jìn)行整型提升


【資料圖】

(2)應(yīng)用場(chǎng)景整數(shù)的打印形式有多種,常見的%d和%u分別是以有符號(hào)的十進(jìn)制形式和無符號(hào)的十進(jìn)制形式來打印整數(shù)

(3)整型提升的規(guī)則無符號(hào)數(shù)在進(jìn)行整型提升時(shí)高位補(bǔ)0,有符號(hào)數(shù)分為正數(shù)和負(fù)數(shù),正數(shù)高位補(bǔ)0,負(fù)數(shù)高位補(bǔ)1,換句話說就是,有符號(hào)數(shù)高位補(bǔ)符號(hào)位即可

明白什么時(shí)候整型提升后,我們?cè)賮碇v解發(fā)生截?cái)?/p>

2.發(fā)生截?cái)啵?/p>

其實(shí)就是一個(gè)整形數(shù)據(jù)存儲(chǔ)到小于整型的類型時(shí),由于存放字節(jié)數(shù)有限,只能存放這個(gè)整型數(shù)據(jù)的一部分,這其實(shí)就是發(fā)生了截?cái)?/p>

像上面的這種賦值方式就是要發(fā)生截?cái)嗔?/p>

二:話不多說,直接上手操作一下就會(huì)了

200是一個(gè)整型數(shù)字,(32位下,方便表示)二進(jìn)制表示形式為00000000000000000000000011001000截?cái)嗪蟠娴絘中的是11001000、

100也是一個(gè)整型數(shù)字,(32位下,方便表示)二進(jìn)制表示形式為00000000000000000000000001100100截?cái)嗪蟠娴絘中的是01100100

a+b就是兩個(gè)整數(shù)運(yùn)算,那就是整形運(yùn)算,要發(fā)生整型提升后,再進(jìn)行相加,相加后的結(jié)果為00000000000000000000000100101100

存儲(chǔ)到c時(shí),由于c是char型,又要發(fā)生截?cái)?,截?cái)嗪蟠鎯?chǔ)到c中的結(jié)果為00101100

最后打印a+b和c,由于%d是以有符號(hào)的十進(jìn)制的形式打印整數(shù),因?yàn)閍+b本身就是32比特位了,所以不需要整型提升。但是c是8比特位,所以要進(jìn)行整型提升,c的高位是0,那他就是有符號(hào)數(shù)里面的正數(shù),按照相應(yīng)的提升規(guī)則,高位全補(bǔ)符號(hào)位0

最后,提升完后,要進(jìn)行打印,由于我們看到的是原碼內(nèi)容,儲(chǔ)存在機(jī)器里的是補(bǔ)碼內(nèi)容,所以我們還要進(jìn)行轉(zhuǎn)碼操作,又因?yàn)閍+b和c都是正數(shù),所以原碼反碼補(bǔ)碼均相同,直接用計(jì)算器轉(zhuǎn)換到十進(jìn)制數(shù)字即可得出答案

三:最后的最后

小編只是個(gè)剛上大一的學(xué)生,寫篇博客真的很不容易,嗚嗚嗚

大家多多支持哈,小編在此感激不盡,嘻嘻嘻

關(guān)鍵詞:

上一篇:
下一篇:

凡本網(wǎng)注明“XXX(非中國(guó)微山網(wǎng))提供”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和其真實(shí)性負(fù)責(zé)。

特別關(guān)注