第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在存在unsigned int和signed int的C表達式中,哪種類型將提升為哪種類型?

在存在unsigned int和signed int的C表達式中,哪種類型將提升為哪種類型?

C
慕慕森 2019-09-24 15:26:24
我有一個有關(guān)C語言標準中的數(shù)據(jù)類型升級規(guī)則的查詢。C99表示:C整數(shù)促銷還要求“如果一個int可以表示原始類型的所有值,則該值將轉(zhuǎn)換為int;否則,它將轉(zhuǎn)換為一個無符號int。”我的問題是在C語言表達式存在unsigned int和signed int存在的情況下,哪種類型將提升為哪種類型?例如int,不能表示unsigned int(大于MAX_INT值的值)的所有值,而unsigned int不能表示-ve值,那么在這種情況下什么類型被提升為什么類型?
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經(jīng)驗 獲得超11個贊

我認為以下回答了您的問題:

6.3.1.3有符號和無符號整數(shù)

1將整數(shù)類型的值轉(zhuǎn)換為_Bool以外的其他整數(shù)類型時,如果該值可以用新類型表示,則該值不變。

2否則,如果新類型是無符號的,則通過重復添加或減去比新類型可表示的最大值多一個值來轉(zhuǎn)換值,直到該值在新類型的范圍內(nèi)為止。

3否則,將對新類型進行簽名,并且無法在其中表示值;結(jié)果是實現(xiàn)定義的,還是引發(fā)實現(xiàn)定義的信號。


查看完整回答
反對 回復 2019-09-24
?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

我認為您在混淆兩件事。提升是將int / unsigned int的“較小”整數(shù)類型的值轉(zhuǎn)換為int或unsigned int的過程。這些規(guī)則有些奇怪(主要是為了充分處理char),但要確保其值和符號得到保留。

然后是普通算術(shù)轉(zhuǎn)換的不同概念,通過該概念,算術(shù)運算符的操作數(shù)被轉(zhuǎn)換為通用類型。首先,如果操作數(shù)的類型小于int,則將其提升為int或unsigned,然后通過以下過程選擇目標類型(對于整數(shù)類型6.3.1.8/1)

如果兩個操作數(shù)具有相同的類型,則無需進一步轉(zhuǎn)換。

否則,如果兩個操作數(shù)都具有符號整數(shù)類型或都具有無符號整數(shù)類型,則將具有較小整數(shù)轉(zhuǎn)換等級的操作數(shù)轉(zhuǎn)換為具有較大等級的操作數(shù)的類型。

否則,如果具有無符號整數(shù)類型的操作數(shù)的秩大于或等于另一個操作數(shù)的類型的秩,則將帶符號整數(shù)類型的操作數(shù)轉(zhuǎn)換為無符號整數(shù)類型的操作數(shù)的類型。

否則,如果帶符號整數(shù)類型的操作數(shù)的類型可以表示帶無符號整數(shù)類型的操作數(shù)的所有值,則帶無符號整數(shù)類型的操作數(shù)將轉(zhuǎn)換為帶符號整數(shù)類型的操作數(shù)的類型。

否則,兩個操作數(shù)都將轉(zhuǎn)換為與帶符號整數(shù)類型的操作數(shù)類型相對應(yīng)的無符號整數(shù)類型。

(請注意ISTR,這些規(guī)則在C89和C99之間略有變化)


查看完整回答
反對 回復 2019-09-24
  • 2 回答
  • 0 關(guān)注
  • 654 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號