C 筆記05 資料型別轉換

2021-10-08 18:45:05 字數 2884 閱讀 7764

——本系列是基於人民郵電出版社《c#2008 c#**教程》、清華大學出版社《c#入門經典(第五版)》兩本書的自學c#筆記,如果您發現了本文的紕漏,還望不吝指正。

無論是什麼型別,所有的資料都是一系列的位,即一系列0和1。變數的含義是通過解釋這些資料的方式來傳達的。最簡單的示例是char 型別,這種型別用乙個數字表示unicode字符集中的乙個字元。實際上,這個數字與ushort 的儲存方式完全相同——它們都儲存0~65535之間的數字。——清華大學出版社《c#入門經典(第五版)》

轉化(conversion)是接受乙個型別的值並使用它作為另乙個型別的等價值的過程,轉換後的值應和源值一樣的,但是它是目標型別。———人民郵電出版社《c#2008 c#**教程》

型別轉換採用以下兩種形式:

從型別a到型別b的轉換可以在所有情況下進行,執行轉換的規則非常簡單,編譯器執行轉換。

short a =10;

int b = a;

編譯器可以隱式執行的數值轉換

型別可以安全地轉換為

byte

short, ushort, int, uint, long, ulong, float, double, decimal

sbyte

short, int, long, float, double, decimal

short

int, long, float, double, decimal

ushort

int, uint, long, ulong, float, double, decimal

intlong, float, double, decimal

uint

long, ulong, float, double, decimal

long

float, double, decimal

ulong

float, double, decimal

float

double

char

ushort, int, uint, long, ulong, float, double, decimal

任何型別a,只要其取值範圍完全包含在型別b的取值範圍內,就可以隱式轉換為型別b

從型別a到型別b的轉換只能在某些情況下進行,轉換的規則比較複雜,應進行某種型別的處理。是我們手動進行的,在轉換過程中,可能會出現資料丟失,轉換不成功時會報錯

1).強制轉換運算子 ()

int a=

123;

short b=

(short

)a;

2).convert轉換類

表 5-2出自 清華大學出版社《c#入門經典(第五版)》第5章

short val1 = convert.

toint16

(val)

//val轉換為short

int val1 = convert.

toint32

(val)

//val轉換為int

long val1 = convert.

toint64

(val)

//val轉換為long

3).parse轉換類

int a=

int.

parse

("32");

//把32這個字串轉成數字

checked和unchecked運算子控制表示式的溢位檢測上下文,表示式放在一對圓括號內並且不能是乙個方法。語法如下:

checked

(//表示式)

unchecked

(//表示式)

如果溢位,丟擲overflowexception異常,而且後續的console.writeline不會執行

例:如下**中,byte型別的變數允許的值為0~255之間的整數

ushort sh =

2000

;byte sb;

sb =

unchecked((

byte

)sh)

;

console.

writeline

("sb:"

,sb)

;sb =

checked((

byte

)sh)

;

console.

writeline

("sb:"

,sb)

;//源**來自 人民郵電出版社《c#2008 c#**教程》第18章

控制台輸出結果:

checked語句和unchecked語句執行相同的功能,但控制一塊**的所有轉換,而不是單個表示式

checked語句和unchecked語句可以被巢狀在任意層次

byte sb;

ushort sh =

2000

;unchecked

",sb)

;checked

",sh);}

}//源**來自 人民郵電出版社《c#2008 c#**教程》第18章

控制台輸出結果:

05 資料型別轉換

語言中我們的資料型別有很多,在某個頁面中展示的資料型別也不同,比如說 號碼我就要求number的型別,而輸入姓名的時候就要求string型別的。那麼在適當的情況下我們可以將資料型別進行轉換。隱式轉換 var n1 123 var n2 123 var n3 n1 n2 隱式轉換 console.lo...

05 資料型別轉換

語言中我們的資料型別有很多,在某個頁面中展示的資料型別也不同,比如說 號碼我就要求number的型別,而輸入姓名的時候就要求string型別的。那麼在適當的情況下我們可以將資料型別進行轉換。1 將數值型別轉換成字串型別 隱式轉換 var n1 123 var n2 123 var n3 n1 n2 ...

05 資料型別轉換

語言中我們的資料型別有很多,在某個頁面中展示的資料型別也不同,比如說 號碼我就要求number的型別,而輸入姓名的時候就要求string型別的。那麼在適當的情況下我們可以將資料型別進行轉換。隱式轉換 var n1 123 var n2 123 var n3 n1 n2 隱式轉換 console.lo...