生活随笔
收集整理的這篇文章主要介紹了
c# 学习笔记 (1) 类型转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類型轉換
c#類型轉換
顯示類型轉換
使用()進行顯示轉換
int lTemp
= 0;float fTemp
= 3.14f;lTemp
= (int)fTemp
;
使用長類型給短類型賦值時,需要進行強制類型轉換,使用短類型給長類型賦值時,不需要進行強制類型轉換。
使用方法Parse進行顯示轉換
int lTemp
= 0;lTemp
= int.Parse("123");
Parse方放可以將數字類型的字符強制轉換為其他類型,不過需要注意,轉換的字符一定要是數字字符,否則會拋出異常。
使用Convert類的方放進行顯示轉換
int lTemp
= 0;lTemp
= Convert
.ToInt32(6.5);
Convert類中的轉換方放需要注意,在將浮點數強制轉化為整形時,并不是完全按照四舍五入的,如果值兩個數的中間值,則會得到偶數值,比如 Convert.ToInt32(6.5)會得到6,Convert.ToInt32(7.5)會得到8
Byte數組轉成string類型
Byte
[] recvByteTemp
= new Byte[]{ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36};string str
= System
.Text
.Encoding
.ASCII
.GetString(recvByteTemp
);string str
= System
.Text
.Encoding
.Default
.GetString(recvByteTemp
)
經過轉換后 字符串str == "0123456";
注意 System.Text.Encoding.ASCII 為 recvByteTemp的編碼格式,也可以通過System.Text.Encoding.Default.GetString(recvByteTemp)來進行轉化,當然還有UTF8等格式,可以根據需要自行調整。
string類型轉化為Byte數組
string str
= "0123456";Byte
[] recvByteTemp
= System
.Text
.Encoding
.Default
.GetBytes(str
);
經過轉換后 recvByteTemp == { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36};
注意:字符串結尾的 /0 并沒有被轉化到Byte數組中。
string類型轉化為16進制的string類型
string str
= "0123456\r\n";
Byte
[] recvByteTemp
= System
.Text
.Encoding
.Default
.GetBytes(str
);
string strToHex
= "";
for (int i
= 0; i
< recvByteTemp
.Length
; i
++)
{strToHex
+= recvByteTemp
[i
].ToString("X2") + " ";
}
string str
= "0123456\r\n";
Byte
[] recvByteTemp
= System
.Text
.Encoding
.Default
.GetBytes(str
);
string strToHex
= "";for (int i
= 0; i
< recvByteTemp
.Length
; i
++)
{strToHex
+= Convert
.ToString(recvByteTemp
[i
], 16).PadLeft(2, '0').ToUpper() + " ";
}
經過轉換后 strToHex == "30 31 32 33 34 35 36 0D 0A ";
一般使用方法1即可,如果想要轉化為其他進制的字符串,例如轉化為10進制的字符串,方法1 recvByteTemp[i].ToString(“D”) ; 方法2 Convert.ToString(recvByteTemp[i], 10) ,當然但是如果想要對齊或者同一大小寫,需要后續處理。
Byte數組轉化為16進制的string類型
string類型轉化為16進制的string類型 時是將string類型轉化Byte數組,然后將Byte數組再轉化為16進制的string類型,因此參考上述 string類型轉化為16進制的string類型 方法即可。
16進制的string類型轉化為Byte數組
string str
= "30 31 32 33 34 35 36 0D 0A ";string strNoSpace
= str
.Replace(" ", "");byte[] bytes
= new byte[strNoSpace
.Length
/ 2];for (int i
= 0; i
< strNoSpace
.Length
/ 2; i
++){bytes
[i
] = Convert
.ToByte(strNoSpace
.Trim().Substring(i
*2, 2), 16);}
經過轉換后 bytes == {48, 49, 50, 51, 52, 53, 54, 13, 10}
Byte數組轉化為Int32類型
byte[] bytes
= new byte[] { 0x11, 0x22, 0x33, 0x44 };int temp
= BitConverter
.ToInt32(bytes
, 0);
經過轉換后 temp = 0x44332211;
Int32類型轉化為Byte數組
int temp
= 0x44332211;byte[] bytes
= BitConverter
.GetBytes(temp
) ;
經過轉換后 bytes = { 0x11, 0x22, 0x33, 0x44 };
隱式類型轉換
隱式轉換規則和C語言類似,在不同數據類型的(加、減、乘、除、取余以及符號運算)運算中,不同類型數招必須轉換成同 一類型的數據才能運算,算術轉換原則為: 整型提升:對于所有比int小的類型,包括char, signed char, unsigned char, short, unsigned short,首先會提升為int類型。 在進行運算時,以表達式中最長類型為主,將其他類型位據均轉換成該類型,如:(1)若運算數中有double型或float型,則其他類型數據均轉換成double類型進行運算。
總結
以上是生活随笔為你收集整理的c# 学习笔记 (1) 类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。