在視屏課程第二章里,我們已經學習了一些常用的數據類型轉換。然而,有一些時候我們會經常會遇到將char類型轉換成int類型,或者需要將int類型轉換為char類型的情況。
這里,我們來探討一下這種不常用但是需要我們了解的類型轉換。
將char類型轉換成int類型
一個漢字能轉換成數字int類型嗎?答案是可以的,因為計算機對漢字的儲存也是通過某種編碼規則相對應的數字來儲存的。
在C#語言中,使用Unicode編碼來存儲字符。
比如漢字 ‘漢’,對應的Unicode編碼是27721,在計算機內存中,將使用汗27721對應的二進制來存儲。
因此,如果要把 ‘漢’ 轉換為int類型的數字,轉換的結果就是27721。
那使用什么樣的代碼來完成該轉換呢?
char類型的任何數據都可以隱式的轉換為int類型。
既然是隱式轉換,所以,下面的代碼都是正確的:
char a='漢'
int b=a;
Console.WriteLine(b);
b='a';
Console.WriteLine(b);
運行以上代碼會輸出:
277721
97
“漢”和'a'分別是277721和97.
int轉為char
比如,我有一個int類型的變量27721,我想看看這個數字作為編碼,對應的字符是什么?
這種情況,就需要把int類型的數據轉換為char類型。
int類型的數據轉換為char類型時必須使用顯示轉換。
為什么必須使用顯示轉換呢?如果你看懂了char轉為int一節,應該明白原因。
char類型的取值范圍小於int,因此,將取值范圍大的int類型轉換為取值范圍小的char類型是不安全的,所以要用顯示轉換。
下面的代碼,是查看27721和97兩個數字所代表的字符:
int a=27721;
char c=(char )a;
Console.WriteLine(c);
c=(char)97;
Console.WriteLine(c);