C 中關於型別的轉換

2021-06-22 19:49:26 字數 978 閱讀 8790

程式設計過程中經常遇到的幾種資料格式:0x32(16進製制),50(十進位制),『2』(字元),「2」(字串)

他們之間的轉換剛開始會讓人覺得迷茫,現在稍微總結如下:

從我們熟悉的十進位制出發,50的16進製制是0x32,其ascii碼是『2』,所以他們表達的是同乙個值。

在c#中資料型別的轉換需要用到convert

convert.toint16()

convert.tochar()

convert.tobyte()

等等...

下面列舉部分使用例項

int aint, bint;

byte abyte, bbyte;

char achar='2';

string astring = "2";

aint = abyte; //位元組可以直接賦值給整型

abyte = aint; //報錯,整型不能直接賦值給位元組

aint = achar; //字元可以直接賦值給整型

achar = aint; //報錯,整型不能直接賦值給字元

aint = convert.toint16(achar); //aint值為50

bint = convert.toint16(astring,16); //bint值為2

從上面可以看出,對於字元來說,convert並沒有改變它的值,和aint=(int)achar;  的功能一樣。

而對於字串來說,則是將字元轉換成了字面值。  「0」~「f」對應於0~15.

另外,

convert.toint16(astring,16);

16是frombase,不是很清楚是什麼意思。

還有為什麼「a」和「a」使用上面的轉換結果都是10,也就是大小寫相等

其他情況如「0123」這種字串有待討論。

關於C 的型別轉換失敗

c 中的基礎 內建 資料型別的轉型沒有失敗的,頂多就是精度損失 至於自定義型別的轉型,最好使用新式的轉型風格,即 const cast expression const與非const之間的轉型 dynamic cast expression 多型轉換 reinterpret cast express...

C 中的型別轉換

和goto語句一樣型別轉換的名聲似乎也是不那麼好。不過型別轉換在某些緊要關頭就顯得尤為重要,看看現有的c c 就知道,以至於你不理解轉換的作用,將是無法閱讀的。就像鈾,它能變成原子彈,但它也能用來發電,是災難還是福祉那就要看人類了。顯然型別轉換默默承受著這不公的一切。不管怎麼說c風格的型別轉換還是不...

C 中的型別轉換

1.隱式轉換 1 賦值轉換 將右值轉換為左型別,然後再賦值。2 整型提公升 c 將bool char,unsigned char,singned char,short轉換為int,int計算最快 表示式中的優先順序轉換 long double double float unsigned long 對...