c# 進製轉換(二進位制、十六進製制、十進位制互轉)
由於二進位制數在c#中無法直接表示,所以所有二進位制數都用乙個字串來表示
例如: 二進位制: 1010 表示為 字串:"1010"
int d = 10;
//十進位制轉二進位制字串
console.writeline(convert.tostring(d,2));
//輸出: 1010
//十進位制轉十六進製制字串
console.writeline(convert.tostring(d,16));
//輸出: a
//二進位制字串轉十進位制數
string bin = "1010";
console.writeline(convert.toint32(bin,2));
//輸出: 10
//二進位制字串轉十六進製制數
string bin = "1010";
console.writeline(string.format("",convert.toint32(bin,2));
//輸出: a
//十六進製制轉二進位制字串
console.writeline(convert.tostring(0xa,2));
//輸出: 1010
//十六進製制轉十進位制數
console.writeline(convert.tostring(0xa,10));
//輸出: 10
c#實現轉換十六進製制
c#語言有很多值得學習的地方,這裡我們主要介紹c#實現轉換十六進製制,包括介紹用來表示十六進製制的列舉值是 hexnumber等方面。
c#實現轉換十六進製制
任何資料在計算機內部都是以二進位制儲存的,所以進製與資料的儲存無關,只與輸入輸出有關。所以,對於進製轉換,我們只關心字串中的結果。
在上面的第 4 條中提到了 tostring() 方法可以將數值轉換成字串,不過在字串中,結果是以十進位制顯示的。現在我們帶給它加一些引數,就可以讓c#實現轉換成十六進製制——使用 tostring(string) 方法。
這裡需要乙個 string 型別的引數,這就是格式說明符。十六進製制的格式說明符是 "x" 或者 "x",使用這兩種格式說明符的區別主要在於 a-f 六個數字:"x" 代表 a-f 使用小寫字母表示,而 "x" 而表示 a-f 使用大字字母表示。如下例:
1. private void testhex()
執行結果如下:
1. a(10) = 188
2. a(16) = bc
3. a(16) = bc
這時候,我們可能有另一種需求,即為了顯示結果的整齊,我們需要控制十六進製制表示的長度,如果長度不夠,用前導的 0 填補。解決這個問題,我們只需要在格式說明符「x」或者「x」後寫上表示長度的數字就行了。比如,要限制在 4 個字元的長度,可以寫成「x4」。在上例中追加一句:
其結果將輸出 a(16) = 00bc。
現在,我們還要說一說如何將乙個表示十六進製制數的字串轉換成整型。這一轉換,同樣需要借助於 parse() 方法。這裡,我需要 parse(string, system.globalization.numberstyles) 方法。第乙個引數是表示十六進製制數的字串,如「ab」、「20」(表示十進位制的 32) 等。第二個引數 system.globalization.numberstyles 是乙個列舉型別,用來表示十六進製制的列舉值是 hexnumber。因此,如果我們要將「ab」轉換成整型,就應該這樣寫:int b = int.parse("ab", system.globalization.numberstyles.hexnumber),最後得到的 b 的值是 171。
進製之間轉換
簡介 二進位制轉換 二進位制轉八進位制 將二進位制從右至左,三個為一組,不夠左邊填0補齊,按權相加,拼接得到8進製 二進位制轉10進製 將二進位制數直接按權相加 二進位制轉16進製制 將二進位制從右至左,四個為一組,不夠左邊補0,按權相加,拼接得到10進製 轉為二進位制 八進位制轉二進位制 每乙個位...
進製之間轉換
對於整數部分,用被除數反覆除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱 乘基取整法 10進製數轉換成二進位制數,這...
進製之間轉換
明確乙個概念,即所謂的16進製制,10進製,2進製,只是一種整型數值的表示方法表示方法,同乙個數值可以有的16進製制,10進製,2進製的表示,也可以使用16進製制,10進製,2進製來建立同乙個數值。並且一般在一定範圍內,不同方式表示的同乙個數字在記憶體中的儲存結構也是相同的。整形類數值根本就沒有進製...