溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#如何實現(xiàn)進制轉(zhuǎn)換

發(fā)布時間:2021-05-27 14:51:16 來源:億速云 閱讀:143 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)C#如何實現(xiàn)進制轉(zhuǎn)換,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

由于二進制數(shù)在C#中無法直接表示,所以所有二進制數(shù)都用一個字符串來表示
例如: 二進制: 1010 表示為 字符串:"1010" 
int d = 10;

//十進制轉(zhuǎn)二進制字符串
 Console.WriteLine(Convert.ToString(d,2));
//輸出: 1010

//十進制轉(zhuǎn)十六進制字符串
Console.WriteLine(Convert.ToString(d,16));
//輸出: a


//二進制字符串轉(zhuǎn)十進制數(shù)
string bin = "1010";
Console.WriteLine(Convert.ToInt32(bin,2));
//輸出: 10


//二進制字符串轉(zhuǎn)十六進制數(shù)
string bin = "1010";
Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin,2));
//輸出: a


//十六進制轉(zhuǎn)二進制字符串
Console.WriteLine(Convert.ToString(0xa,2));
//輸出: 1010


//十六進制轉(zhuǎn)十進制數(shù)
Console.WriteLine(Convert.ToString(0xa,10));
//輸出: 10

C#實現(xiàn)轉(zhuǎn)換十六進制

C#語言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#實現(xiàn)轉(zhuǎn)換十六進制,包括介紹用來表示十六進制的枚舉值是 HexNumber等方面。

任何數(shù)據(jù)在計算機內(nèi)部都是以二進制保存的,所以進制與數(shù)據(jù)的存儲無關(guān),只與輸入輸出有關(guān)。所以,對于進制轉(zhuǎn)換,我們只關(guān)心字符串中的結(jié)果。

在上面的第 4 條中提到了 ToString() 方法可以將數(shù)值轉(zhuǎn)換成字符串,不過在字符串中,結(jié)果是以十進制顯示的?,F(xiàn)在我們帶給它加一些參數(shù),就可以讓C#實現(xiàn)轉(zhuǎn)換成十六進制——使用 ToString(string) 方法。

這里需要一個 string 類型的參數(shù),這就是格式說明符。十六進制的格式說明符是 "x" 或者 "X",使用這兩種格式說明符的區(qū)別主要在于 A-F 六個數(shù)字:"x" 代表 a-f 使用小寫字母表示,而 "X" 而表示 A-F 使用大字字母表示。如下例:

  private void TestHex() { 
  int a = 188; 
  thistextBoxText = ""; 
  thistextBoxAppendText("a(10) = " + aToString() + "\n"); 
  thistextBoxAppendText("a(16) = " + aToString("x") + "\n"); 
  thistextBoxAppendText("a(16) = " + aToString("X") + "\n"); 
  }

運行結(jié)果如下:

a(10) = 188  
a(16) = bc  
a(16) = BC 

這時候,我們可能有另一種需求,即為了顯示結(jié)果的整齊,我們需要控制十六進制表示的長度,如果長度不夠,用前導(dǎo)的 0 填補。解決這個問題,我們只需要在格式說明符“x”或者“X”后寫上表示長度的數(shù)字就行了。比如,要限制在 4 個字符的長度,可以寫成“X4”。在上例中追加一句:

 this.textBox1.AppendText("a(16) = " + a.ToString("X4") + "\n");

其結(jié)果將輸出 a(16) = 00BC。

現(xiàn)在,我們還要說一說如何將一個表示十六進制數(shù)的字符串轉(zhuǎn)換成整型。這一轉(zhuǎn)換,同樣需要借助于 Parse() 方法。這里,我需要 Parse(string, System.Globalization.NumberStyles) 方法。第一個參數(shù)是表示十六進制數(shù)的字符串,如“AB”、“20”(表示十進制的 32) 等。第二個參數(shù) System.Globalization.NumberStyles 是一個枚舉類型,用來表示十六進制的枚舉值是 HexNumber。因此,如果我們要將“AB”轉(zhuǎn)換成整型,就應(yīng)該這樣寫:int b = int.Parse("AB", System.Globalization.NumberStyles.HexNumber),最后得到的 b 的值是 171。   

關(guān)于“C#如何實現(xiàn)進制轉(zhuǎn)換”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI