C 中的資料轉換問題

2021-10-05 22:06:18 字數 1608 閱讀 8789

首先,我們先來看一下顯式轉換和隱式轉換,其實這兩個概念是非常簡單的,看下面這兩行簡單的**:

//隱式轉換

int b =10;

float a = b;

//顯式轉換

float c =10;

int d =

(int

)c;

看到這裡我相信大家都已經清楚了,隱式轉換就是我們什麼都不用做,編譯器會自動幫我們做轉換,而對於顯式轉換,實際上就是通過強制轉換來做型別轉換。

那什麼樣的資料可以做隱式轉換,什麼樣的資料要做顯式轉換呢?

隱式轉換:將占用儲存空間小的資料轉換成占用儲存空間大的資料時,編譯器可以幫我們做轉換,我們用隱式轉換即可。

顯式轉換:將占用儲存空間大的資料轉換為占用儲存空間小的資料時,我們需要通過強制轉換的形式來進行顯式轉換。

下面,來具體談談在c#這門語言中,我們平時常用的基本資料型別之間是如何轉換的:

(1)強制轉換:這種可能是我們最熟悉的一種方式,當然其肯定有弊端所在,所以建議能不使用就不使用強制轉換的方式來轉換資料型別。

(2)t.parse(string a)方法:t表示資料型別,string不包括在t裡面,通常用於將string型別的資料轉換為其他型別的資料,使用例子如下:

string a =

"2";

int b=

int.

parse

(a);

(3)t.tryparse(string a,out b)方法:t表示資料型別,string不包括在裡面。這個其實是上面的parse方法的乙個改進,其有了乙個out引數b,b的型別是t型,假如可以轉換的話,那麼最後轉換後的結果就會到b中去,這時b的值就是我們最後要的結果(注意這個方法沒有返回值,不能宣告乙個變數去接值),但是假如轉換不成功,那麼b的值會返回0,表示轉換失敗。轉換例子如下:

string a =

"2";

int b;

int.

tryparse

(a ,

out b)

;

(4)convert類:這個類是c#中用途很廣的乙個類,它的作用是將乙個資料型別轉換為另乙個資料型別,基本所有的基本資料型別都可以互相轉換,使用例子如下:

string a =

"2";

int c = convert.

toint32

(a);

具體的其他型別之間的轉換大家可以自己f12到convert中去檢視,其有非常多的過載方法。

最後我想提一點就是轉換效率問題,實際上在將string型別轉換為其他型別時(這也是我們最常用的轉換形式),我們呼叫convert類的方法實際上底層呼叫的還是parse()這個方法,所以單純的從這裡來看我們將string型別轉換為其他型別時使用parse()方法的效率會更高,但是假如大家嫌麻煩,我還是建議使用convert類來做轉換,因為這個類基本上是萬能的,不容易出錯的。

that』s all.

C語言資料轉換問題

不同的編譯器對資料轉換時的處理是不一樣的 下面來說下我在pic16f1783微控制器上遇到的資料轉換問題 微控制器 pic16f1783 ide mplab 編譯器 hi tech ansi c compiler picc 1.以下是程式小片段,做a b的運算 u32 sum 用於存放結果 u16 ...

oracle中date資料的轉換問題

to number to char fp.kprq,hh24 18 kprq to date 2017 01 12 18 00 00 yyyy mm dd hh24 mi ss 有時分秒的字串用to date函式轉換為date型別資料。and kprq to date 2017 01 12 00 0...

C 中資料進製轉換

一 十進位制資料轉換為n進製資料 十進位制資料value,可以用如下公式表示為n精緻的資料。value xn math.pow item,n xn 1 math.pow item,n 1 x2 math.pow item,1 x1 math.pow itm,0 其中xn的範圍為 0 xn item ...