1. 程式人生 > >C#中二進位制、十進位制和十六進位制互相轉換的方法

C#中二進位制、十進位制和十六進位制互相轉換的方法

二進位制在C#中無法直接表示,我們一般用0和1的字串來表示一個數的二進位制形式。比如4的二進位制為“100”。下面介紹C#裡面用於進位制轉換的方法。

十進位制轉換為二進位制(int-->string)

System.Convert.ToString(d, 2);// d為int型別 以4為例,輸出為100


十六進位制轉換為二進位制(int-->string)

System.Convert.ToString(d, 2);// d為int型別 以0X14為例,輸出為10100


上面ToString函式的第二個引數表示目標數字系統的基數。

二進位制轉換為十進位制(string-->int

System.Convert.ToInt32(s, 2);// d為string型別 以“1010”為例,輸出為10


十六進位制轉換為十進位制string-->int、int-->int)

方法一:

System.Convert.ToString(0xa,10);// 以0XA為例,輸出為10


或者

System.Convert.ToInt32("0x41", 16);//以"0x41"為例,輸出為65


方法二:

System.Int32.Parse(s, System.Globalization.NumberStyles.HexNumber);//s為string型別,以“41”為例,輸出為65

注意這裡的s中不能帶有“0X”或者“0x”,區別於上面的方法。

二進位制轉換為十六進位制string-->int

先轉換為十進位制,在轉換為十六進位制

string.Format("{0:X}",System.Convert.ToInt32(s, 2));// s為string型別 以“1010”為例,輸出為A


十進位制轉換為十六進位制

十進位制轉換為十六進位制不需要特殊的方法,只要對輸出格式進行控制一下就可以。


或者使用string.Format("{0:x}", dec)方法進行控制,也可以用s.ToString("X")方式進行控制。

除了數制轉換之外,資料型別的轉換也比較重要。對於基本資料型別,byte、char、int、string以及它們的陣列形式的轉換雖然簡單,但是比較基礎的知識。網上也有很多詳解,用到的時候自行查閱即可。