C 日積月累之型別轉換

2021-07-02 17:32:27 字數 1500 閱讀 4925

一、顯式轉換

在對數值變數進行顯式轉換時,可能出現溢位的情況,使用checked關鍵字可以對溢位進行檢查:

int num = 123456;

short num2 = checked((short)num);

console.writeline("num = \nnum2 = ", num, num2);

執行**會出現下面的情況:

除了使用checked外,也可以通過修改系統設定來檢查,選單【專案】->【屬性】->【生成】->【高階】->勾選【檢查運算上溢/下溢】。設定之後就會對所有的轉換進行溢位檢查,除非使用unchecked關鍵字。

二、數字字串轉換為數值(convert類)

c#提供了乙個把字串轉換為各種數值的類——convert類,具體方法可以檢視api。一般為十進位制數字字串和十進位制數值之間的轉換,這裡筆者要記錄的是非十進位制數字字串和十進位制數值之間的轉換。

(1)通過 convert.toint32() 函式可以把非十進位制數轉換為十進位制數:

該函式有兩個引數,第乙個引數是表示非十進位制數的字串,第二個引數是原數的基數(即要把幾進製數轉換為十進位制) 。

console.writeline(convert.toint32("110011", 2));        //二進位制轉十進位制

console.writeline(convert.toint32("567", 8)); //八進位制轉十進位制

console.writeline(convert.toint32("6f", 16)); //十六進製制轉十進位制

執行結果:

(2)通過 convert.tostring ()  函式可以把十進位制轉換為非十進位制:

該函式也有兩個引數,第乙個引數是原數(十進位制整數) ,第二個引數是目標數的基數(即要把十進位制數轉換為幾進製) 。

console.writeline(convert.tostring(89, 2));         //十進位制轉二進位制

console.writeline(convert.tostring(89, 8)); //十進位制轉八進位制

console.writeline(convert.tostring(89, 16)); //十進位制轉十六進製制

執行結果:

C 之型別轉換

一 static cast型別轉換 static cast 應用於c 可以隱式轉換的型別之間,包括雙向隱式轉換和單向隱式轉換。例如 雙向隱式轉換 int a char b a static cast b 可以直接通過隱式轉換,轉換型別 a b b static cast a 可以直接通過隱式轉換,轉...

C 之型別轉換

實現將a類的物件轉換為b類物件的方法有3種 a類物件 方法一 如果a為基類,b為派生類,能夠將派生類的物件轉換基類的物件,如b b a a b 方法二 在a類物件中定義轉換建構函式 單形參建構函式 除掉預設形參 並將b類物件作為形參,同一時候禁止使用explicit關鍵子,形如 a b b,int ...

C 之型別轉換

1.發生型別轉換的時機 賦值運算,方法傳參。2.分類 1 根據轉換方法的不同 顯示轉換 explicit 隱式轉換 implicit 如果在 中明確指明了目標型別例稱之為顯示型別轉換如 int x int y,否則稱之為隱式型別轉換如 long y x。顯示和隱式轉換都可能失敗 顯示失敗,則丟擲執行...