1樓:匿名使用者
1<(unsigned char)1為真。槐公升譁。
1為int,1為unsigned char,是整型數。現在做運算,int能夠完全表示int型別的所有數,所以-1仍為int,1為unsigned char,被提公升為int,鉛行而int也是能夠完全表示unsigned char型別範圍內的所有數的。所以1被提公升為int。
兩個int型別的數比較,結果笑禪一目瞭然。
而-1<(unsigned int)1,-1為int,1為unsigned int,兩者的型別不同,這是,由於int無法表示unsigned int範圍內的所有數,所以按照c的規定,兩者均向unsigned int提公升。所以,-1以unsigned int來解釋,結果當然比1大了。
同理,在算術運算過程中,只要是整型數參與的運算,均會發生提公升的過程。
2樓:佼商僦
1:整型提公升。
如果char、short int或者int型位段(bit-field),包括它們有符號或無符號變型,以及列舉型別,可以使慎毀用在需要int或者unsigned int的表示式中。如果int可以完整表示源型別的所有值,那麼該源型別的值就轉換為int,否則轉換為unsigned int。這稱為整型提公升。
2:尋常算術轉換。
許多操迅孝塵作數型別為算術型別的雙目運算子會引發轉換,並以類似的方式產生結果型別。它的目的的產生乙個普通型別,同時也是運算結果的型別。這個模式成為「尋畝禪常算術轉換」。
3樓:匿名使用者
c的扒衝整型包括char,int,long。
short int是乙個談此帆短整型(short是限定符)。
這段話的意思是說,在整型數含雹參與的算術運算過程中,所有的整型數會被轉換成整數的形式(一般為int)。如果,int無法容納原資料型別的所有值,那麼會轉換成unsigned int來處理。
c語言的這題怎麼做
4樓:網友
選d,對了呀,這是c語言的隱式轉換,進行算術運算(加、減、乘、除、取餘以及符號運算)時,不同型別數招必須轉換成同 一型別的資料才能運算,算術轉換原則為:
整型提公升:對於所有比int小的型別,包括char, signed char, unsigned char, short, unsigned short,首先會提公升為int型別。
在進行運算時,以表示式中最長型別為主,將其他型別位據均轉換成該型別,如:
1)若運算數中有double型或float型,則其他型別資料均轉換成double型別進行運算。
2)若運算數中最長的型別為long型.則其他型別數均轉換成long型數。
3)若運算數中最長型別為int型,則char型也轉換成int型進行運算。算術轉換是在運算過程中自動完成的。
特別注意的是有符號和無符號之間的轉換:
包含long與unsigned int,32位機器上都是4位元組,所以均轉換為unsigned long.
包含signed與unsigned int,signed會轉換為unsigned。如果int恰好為負數,其結果為對unsigned取值個數求模的結果。比如將-1賦給8位的unsigned char,呢麼結果就是255(-1對256取模後的值)。
unsigned char取值範圍0~255。
char型別和int型別相加結果是char型別還是int型別?
5樓:網友
假設程式語言是c/c++。
一般而言結果是int型別。如果在某個編譯器上char被實現為unsigned char且長度與int相同,則結果會是unsigned int型別。
執行算術運算,首先對運算物件進行整型提公升。所謂整型提公升,即按如下規則型別轉換:
對於bool、(signed/unsigned) char、(unsigned) short等型別來說,只要它們所有可能的值都能存在int裡,它們就會提公升成int型別;否則,提公升成unsigned int型別。例如,兩個signed char相加,兩個signed char都會提公升成int。
較大的char型別(wchar_t、char16_t、char32_t)提公升成int、unsigned int、long、unsigned long、long long和unsigned long long中最小的能容納原型別所有可能的值的型別。
整型提公升後,如果結果型別匹配,無需進一步的轉換。如果兩個(提公升後的)運算物件都是帶符號的,或者都是無符號的,則小型別轉換成大型別。例如,int與long相加,結果是long。
如果乙個運算物件是無符號型別,另乙個運算物件是帶符號型別,又分兩種情況:
無符號的型別不小於帶符號的型別(比如unsigned long與int),此時帶符號的轉換成無符號的。例如原題中若char被實現為unsigned char且長度與int相同,則首先執行整型提公升char被轉換為unsigned int(int不能容納char的所有可能值),然後int與unsigned int相加,int被轉換為unsigned int,最終結果為unsigned int。
無符號的型別小於帶符號的型別,此時結果依賴於機器。如果無符號型別的所有值都能存在該帶符號型別中,則無符號的轉換成帶符號的,否則帶符號的轉換成無符號的。
6樓:網友
是int型別。
char 1個位元組,int 2~4個位元組。
兩者相加取大者。
乙個c的小題目,概念不是很清楚,問一問大家
7樓:小達人
是呀,unsigned int 比int的優先順序高,所以他們參加混合運算的時候先轉換為同運算級的,然後再計算,a+b=6+20=26>6,所以會輸出「hehe",希望我能幫到你!
8樓:夫妻那些事兒
和編譯器有關。
比較老式的編譯器所使用的規則稱為保無符號規則(意為「優先保證無符號運算」)。
在「保無符號規則」的指導下,整型提公升的定義要改為:
如果提公升前的數是有符號的(signed),則轉換為 int;無符號的(unsigned)則轉換為 unsigned int。
上面的轉換表最後兩行也要改為:
若 t1 > t2(無論 signed t1 能否表達 unsigned t2),op1 和 op2 都轉換為 unsigned t1。
現在新式的編譯器所使用的規則為保值規則,在新編譯器下,就會優先轉換為int;
9樓:網友
因為a是unsigned,且表示式 a +b中a在前面,所以會對b進行強制型別轉換為unsigned。
對於a+b這樣的計算,被加數如果與加數型別不同,都要隱式轉換加數的型別與被加數相同,轉換失敗的話會出錯,且表示式的返回值型別與被加數相同。所以你的理解是正確的。
你printf("%ud", b)就是b轉換為無符號整形後的值了。所以會a + b > 6。
10樓:網友
他有個預設的轉換格式的,就是遇到不同的內建型別,會有個型別轉換機制,從整體上來說是從簡單型別轉換到複雜型別,比如int轉換成double型,而你問的有無符號的int型之間的轉換是有符號轉換成無符號的。你也可以通過強制型別轉換改變預設的型別轉換的方向,例如int a = 3;double b = ;a = (int)b%a;在這裡如果不使用強制型別轉換就會報錯。
11樓:網友
編譯器不同處理的方式也不同,可以參考一下《c專家程式設計》 。你的就是轉換成了unsigned int 了。
j**a中char型別和int型別相加結果是char型別還是int型別
12樓:育知同創教育
char型別是16位的,底層。
bai採用unicode編碼儲存du.
char型別是可以直接賦zhi值給int型別的,因為是dao16位到32位低到高內。
舉個例子比如int i='1';列印容i的值是49.
char型別跟int型別進行計算的時候會自動轉換為int型別比如'1'+1);輸出結果是50.
char型別的'='換成int是61
#include
13樓:網友
在c語言中,char型別會擴充套件為int型別參與運算,所以~a相當於~0,0為int型別,所以~a值為ffffffff
14樓:網友
a按位取反 以16進位輸出。
c++標準轉換和型別提公升有什麼區別?
15樓:網友
標準轉換(standard conversion)有12種,整型提公升(integral promotion)只是其中之一。
long int b = 1; //表示式「 1 」的型別從 int 提公升為 long int:整型提公升。
void* p = 0;//表示式「 0 」的型別從 int 轉換為void*:空指標轉換(pointer conversion)
這是標準轉換,但不是整型提公升。
【c++】初學者的疑惑--關於('a'+1)==?
16樓:cpp後學
1>毀李。
char' +int
char'整型提公升為int型。
reinterpret_cast只能用來轉換指標。
一般的標準轉換用static_cast
a'盯乎+1==66,然後傳入引數自動轉換成纖則遲char型。push_back(char)
在17k寫小說什麼時候能夠簽約?什麼時候能夠升v?都有些什麼好處?稿費如何算的?怎樣稿費才會更高
男頻超過六萬字,女頻超過三萬字就可以申請簽約,稽核看的是質量。質量足夠通過簽約後,超過三十萬字就可以申請上架,開啟vip章節。稿費大體就三樣,讀者打賞,訂閱,獎金。其中獎金絕大部分與訂閱量掛鉤,不掛鉤的都是幾百塊的小福利。寫的越好,更新越快,自然稿費越高。在17k寫 簽約後還沒上架有沒有稿費的?沒有...
冬至墳前立碑什麼時候好,祖墳什麼時候立碑比較合適
這個得找專業人士,否則會對後代不利 這個必須請專業的風水大師根據多人的生辰八字來推算。立碑必須慎重一 要依據你家的家主時分八字,選一吉時吉課。二 要根據陰宅具體情況,選一吉日。三 碑向要與祭臺方向一致。四 碑的高低,立碑的具體情況要實地察看。五 碑的上部,應刻有圖案,並且圖案由地師指點。六 根據家中...
歐冠決賽什麼時候比,歐冠決賽什麼時候踢?
本賽季歐冠半決賽全部結束,國米雖然客場0 1不敵巴薩,但以總比分3 2晉級決賽,他們將與拜仁爭奪本賽季歐冠的冠軍。最終的決賽將於5月23日在皇家馬德里的主場伯納烏球場舉行。北京時間5月23日凌晨2 45 伯納烏上演 國際米蘭時隔38年再入決賽 挑戰46年的夢想 對手 德國拜仁慕尼黑 具體時間 201...