c語言中int和unsigned優先順序匹配int型別數字與unsigned型別的數字相加得到的

時間 2021-10-17 02:37:57

1樓:匿名使用者

均按int的補碼形式運算,結果的資料型別取決於你所需要的型別;比如:

short int a,x=-21;

unsigned short int b=20;

b=x+b;//結果b的值是65535

a=b;//a的值是-1

2樓:匿名使用者

這個是usual arithmetic conversion,規則是二元運算的時候按順序判斷:

如果有一邊是long double,則另一邊轉換成long double;

否則如果有一邊是double,則另一邊轉換成double;

否則如果有一邊是float,則另一邊轉換成float;

否則如果兩邊都是signed或者unsigned,則等級低(short < int < long < long long)的一邊轉換成和等級高的一邊一樣的型別(比如unsigned int + unsigned long = unsigned long);

否則如果unsigned一邊型別等級高於或等於signed一邊,則signed型別一邊轉換成unsigned一邊的型別(signed int + unsigned int = unsigned int, signed int + unsigned long = unsigned long);

否則如果signed型別可以表示所有unsigned型別的資料,則unsigned一邊轉換成signed一邊的型別(signed long long + unsigned int = signed long long);

否則兩邊全都轉換成int(unsigned short + unsigned char = int)

這個並不是匹配,另外注意這個也不是型別提升。

c語言中 int unsigned 型別轉換

3樓:瀚漠

是的,int會自動轉換自成unsigned型別;

轉換規則:存

bai儲長度較短的轉換du

成存zhi儲長度較長的dao,並且不丟失資訊;

常見型別轉換順序:char 、short -> int -> unsigned -> long int -> double <- float

即運算中有double型別,則其他型別會全部轉換成double型別。

4樓:象帶牙

整型的每一bai種都有無符號(duunsigned)和有符號(signed)兩種型別zhi(float和double總是dao帶符號的),在版預設情況下宣告權的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的正整數資料。

比如你要裝換可以浮點型加(bobule)道理一樣

5樓:匿名使用者

int與unsigned運算時,如果得到的結果是unsigned型(比如賦值給unsigned型變數),int則會被轉成unsigned型。如果賦值給int型則不轉換。

6樓:匿名使用者

是的,int會自動轉換成unsigned型別;

轉換規則:儲存長度較短的轉換成儲存長度較長的,並且不丟失資訊;

在 c語言中int long unsigned 和 char這四種型別資料的轉換規律是_____.

7樓:夢幻子凝

首先,在c中,資料之間的運算必須是同型別的才能進行運算。如果型別不一致,就必須先轉換成相同的型別----------由低階別 → 高

級別轉換。

本題中,資料型別級別由低到高分別為:char→int→unsigned→long。轉換時由低階別向高階別轉換。

比如,有兩個數的資料型別分別為:char型跟long型。 就要先char轉換為long型(因為long級別比char高),再進行運算。

但是不能理解為:先將char轉換成int,再轉換成unsigned,再轉換成long。

希望對您有所幫助!

c語言的unsigned int是什麼意思?

8樓:洪萍佘翎

unsigned

short為無符號短整形,在計算機中是用16位二進位制數儲存,-1在計算機中被儲存為1111111111111111因為是無符號型的,所以開頭的一為被計算機當做數值位

轉換為十進位制,即:1*2^16

+1*2^15+.....+

1*2^1

=65535,其它的結果你可以以此類推。

9樓:碧魯天真庹泉

無符號整型,注意它的數值表示範圍即可。

C語言中int的含義,c語言中int 代表什麼意思

int 定義一個整型變數。比如 int i 表示定義一個整數i 也可以賦予初始值。int i 1 int後接一個字元是定義一個整型變數,vc中佔四位元組。c語言中int 代表什麼意思 c c 程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執...

c語言中int型變數加上double型的變數

程振 會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短 得出的結果是double型.這個不需要強制轉換的,系統會自動轉換的. double,計算時會自動轉化之doubl...

C語言中if和switch區別,C語言中if else語句與switch語句的區別在哪裡?

風若遠去何人留 switch語句,可讀性更好,整體流程看起來清晰明確。if語句適應性更強,可以處理更多的情況。所有的switch語句都可以寫成if的形式,比如switch a 可以寫作 if a b case b else if a c case celse default.但是switch 語句,...