程式設計過程中經常遇到的幾種資料格式: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 對...