国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#常用數據類型間的轉換

2019-11-17 03:20:28
字體:
來源:轉載
供稿:網友

C#常用數據類型間的轉換

數據類型有很多種,數據類型間的轉換也是有很多的方法,如果不細心整理的話等到用的時候再查就會顯得很浪費時間,所以決心整理出這篇博文。主要是講解常用數據類型之間的轉換方法以及常見數據類型所占字節數。

字節數據類型與其它數據類型間的轉換方法主要放在BitConverter類中:

http://msdn.microsoft.com/zh-cn/library/system.bitconverter%28v=vs.100%29.aspx

其它數據類型轉換為字節類型主要通過重載GetBytes()方法返回字節類型數組。

但是字符串類型根據編碼方式的不同返回的字節類型不同,所以字符串類型的轉換通過Encoding類中的GetBytes()方法返回字節數組。

關于占用字節情況的注意:

布爾類型占用一個字節,雖然布爾類型只用一比特就能表示但是還是需要占用一個字節,度娘說最小的存儲單元是一字節。

字符類型在C#中占用二字節,代表一個Unicode字符,Marshal.SizeOf((typeof(char)); 得到的是非托管類型的大小(占用一字節)。在測試中會發現存入數字就是一個字節,存入數組就是兩個字節。

還有不要誤會啊,字符串類型是沒有固定長度的,是在實際使用中根據實際情況確定長度的。

下面測試代碼:

//定義變量并初始化byte[] Test_byte = new byte[] { 0, 1, 2, 3 };byte[] Temp_byte;bool Test_bool;int Test_int;float Test_float;char Test_char;string Test_string; //byte 2 bool//返回由字節數組中指定位置的一個字節轉換來的布爾值。//public static bool ToBoolean(byte[] value, int startIndex);Test_bool = BitConverter.ToBoolean(Test_byte, 1);Console.WriteLine("bool is: {0}", Test_bool.ToString()); //bool 2 byte//以字節數組的形式返回指定的布爾值。//public static byte[] GetBytes(bool value);Temp_byte = BitConverter.GetBytes(Test_bool);Console.WriteLine("bool length is: {0}", Temp_byte.Length); //byte 2 int//返回由字節數組中指定位置的四個字節轉換來的 32 位有符號整數。//public static int ToInt32(byte[] value, int startIndex);Test_int = BitConverter.ToInt32(Test_byte, 0);Console.WriteLine("int is: {0}", Test_int); //int 2 byte//以字節數組的形式返回指定的 32 位有符號整數值。//public static byte[] GetBytes(int value);Temp_byte = BitConverter.GetBytes(Test_int);Console.WriteLine("int length is: {0}", Temp_byte.Length); //byte 2 float//返回由字節數組中指定位置的四個字節轉換來的單精度浮點數。//public static float ToSingle(byte[] value, int startIndex);Test_float = BitConverter.ToSingle(Test_byte, 0);Console.WriteLine("float is: {0}", Test_float); //float 2 byte//以字節數組的形式返回指定的單精度浮點值。//public static byte[] GetBytes(float value);Temp_byte = BitConverter.GetBytes(Test_float);Console.WriteLine("float length is: {0}", Temp_byte.Length); //byte 2 char//返回由字節數組中指定位置的兩個字節轉換來的 Unicode 字符。//public static char ToChar(byte[] value, int startIndex);Test_char = BitConverter.ToChar(Test_byte, 0);Console.WriteLine("char is: {0}", Test_char); //char 2 byte//以字節數組的形式返回指定的 Unicode 字符值。//public static byte[] GetBytes(char value);Temp_byte = BitConverter.GetBytes(Test_char);Console.WriteLine("char length is: {0}", Temp_byte.Length); //byte 2 string//將指定的字節子數組的每個元素的數值轉換為它的等效十六進制字符串表示形式。//public static string ToString(byte[] value, int startIndex);Test_string = BitConverter.ToString(Test_byte, 0);Console.WriteLine("string is: {0}", Test_string); //string 2 byte//在派生類中重寫時,將指定的 System.String 中的所有字符編碼為一個字節序列。//public virtual byte[] GetBytes(string s);Temp_byte = Encoding.Default.GetBytes(Test_string);Console.WriteLine("string length is: {0}", Temp_byte.Length);//char testchar Test_c1 = '人';char Test_c2 = '1';Temp_byte = BitConverter.GetBytes(Test_c1);Console.WriteLine("Byte characters occupy is: {0}", Temp_byte.Length);Temp_byte = BitConverter.GetBytes(Test_c2);Console.WriteLine("Byte digital occupy is: {0}", Temp_byte.Length);//string teststring Test_str1 = "人";string Test_str2 = "1";Temp_byte = Encoding.Default.GetBytes(Test_str1);Console.WriteLine("Byte characters occupy is: {0}", Temp_byte.Length);Temp_byte = Encoding.Default.GetBytes(Test_str2);Console.WriteLine("Byte digital occupy is: {0}", Temp_byte.Length);

將一個基本數據類型轉換為另一個基本數據類型Convert類:

http://msdn.microsoft.com/zh-cn/library/system.convert_methods%28v=vs.100%29.aspx

區別,以數值8為例:

BitConverter.GetBytes();//以字節數組的形式返回指定的 32 位有符號整數值。

返回的是字節數組,也就是數值33的存儲形式:00000000 00000000 00000000 00001000 ,在調試中十進制顯示:0 0 0 8

Convert.ToByte();//將指定的 32 位有符號整數的值轉換為等效的 8 位無符號整數。

返回的是字節,也就是把數值8轉換為字節類型的8了:00001000 ,在調試中十進制顯示為:8


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陇川县| 岳池县| 宝兴县| 南涧| 浮山县| 青阳县| 大石桥市| 开远市| 高州市| 集安市| 临湘市| 阿拉善盟| 靖远县| 邵阳县| 通河县| 临安市| 滨州市| 南安市| 无棣县| 东城区| 中宁县| 广州市| 宁国市| 资兴市| 黎川县| 潞西市| 河津市| 云龙县| 开阳县| 陵水| 武乡县| 庆安县| 饶平县| 茌平县| 临城县| 黔东| 常宁市| 怀安县| 广平县| 陈巴尔虎旗| 建始县|