C# VB 實(shí)現(xiàn)10進(jìn)制 16進(jìn)制之間互相轉(zhuǎn)換
更新時(shí)間:2012年11月30日 11:17:25 作者:
如何將10進(jìn)制轉(zhuǎn)成16進(jìn)制,又如何將16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制,本文將介紹C#和VB實(shí)現(xiàn)代碼,需要了解的朋友可以參考下
方法1:
int d=10;
d.ToString("x") //或把x改為X,,,就變成了16位的字符串了.
int x=Convert.ToInt32(d.ToString("x"),16);//把16進(jìn)制的字符串變回10進(jìn)制的.
方法2:
static void Main()
{
int i = 446;
string hex = i.ToString( "X" /* or x * );
Console.WriteLine( hex );
int j = HexToInt( hex );
Console.WriteLine( j );
}
static int HexToInt(string hex)
{
hex = Regex.Replace(hex, "^0x", "", RegexOptions.IgnoreCase);
if (Regex.IsMatch(hex, "[g-z]", RegexOptions.IgnoreCase))
{
throw new Exception("Invalid Hexadecimal Expression.: 0x" + hex);
}
char[] chars = hex.ToUpper().ToCharArray();
Array.Reverse(chars);
int dec = 0;
for (int i = 0; i < chars.Length; i++)
{
dec += HexMapping(chars[i]) * (int)Math.Pow(16, i);
}
return dec;
}
static int HexMapping(char c)
{
switch (c)
{
case '0':
return 0;
case '1':
return 1;
case '2':
return 2;
case '3':
return 3;
case '4':
return 4;
case '5':
return 5;
case '6':
return 6;
case '7':
return 7;
case '8':
return 8;
case '9':
return 9;
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
default :
throw new Exception("Invalid Hexadecimal Character :" + c.ToString());
}
}
復(fù)制代碼 代碼如下:
int d=10;
d.ToString("x") //或把x改為X,,,就變成了16位的字符串了.
int x=Convert.ToInt32(d.ToString("x"),16);//把16進(jìn)制的字符串變回10進(jìn)制的.
方法2:
復(fù)制代碼 代碼如下:
static void Main()
{
int i = 446;
string hex = i.ToString( "X" /* or x * );
Console.WriteLine( hex );
int j = HexToInt( hex );
Console.WriteLine( j );
}
static int HexToInt(string hex)
{
hex = Regex.Replace(hex, "^0x", "", RegexOptions.IgnoreCase);
if (Regex.IsMatch(hex, "[g-z]", RegexOptions.IgnoreCase))
{
throw new Exception("Invalid Hexadecimal Expression.: 0x" + hex);
}
char[] chars = hex.ToUpper().ToCharArray();
Array.Reverse(chars);
int dec = 0;
for (int i = 0; i < chars.Length; i++)
{
dec += HexMapping(chars[i]) * (int)Math.Pow(16, i);
}
return dec;
}
static int HexMapping(char c)
{
switch (c)
{
case '0':
return 0;
case '1':
return 1;
case '2':
return 2;
case '3':
return 3;
case '4':
return 4;
case '5':
return 5;
case '6':
return 6;
case '7':
return 7;
case '8':
return 8;
case '9':
return 9;
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
default :
throw new Exception("Invalid Hexadecimal Character :" + c.ToString());
}
}
相關(guān)文章
C#多線程學(xué)習(xí)之(六)互斥對(duì)象用法實(shí)例
這篇文章主要介紹了C#多線程學(xué)習(xí)之互斥對(duì)象用法,實(shí)例分析了C#中互斥對(duì)象的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
關(guān)于c#中枚舉類型支持顯示中文的擴(kuò)展說明
需求?。骸∶杜e類型在界面顯示的時(shí)候可以顯示相應(yīng)的中文信息, 這樣界面對(duì)用戶友好 . 場景?。骸≡谝恍I(yè)務(wù)中涉及到審核功能的時(shí)候, 往往有這幾個(gè)狀態(tài)?。何此蛯?, 審核中 ,審核通過, 駁回?。∵@個(gè)時(shí)候我們會(huì)定義一個(gè)枚舉類型來描述 :2013-03-03
C# 9 新特性——record的相關(guān)總結(jié)
這篇文章主要介紹了C# 9 新特性——record的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用c# 9的新特性,感興趣的朋友可以了解下2021-02-02
c#計(jì)算某段代碼的執(zhí)行時(shí)間實(shí)例方法
在本篇文章里我們給大家整理了關(guān)于c#計(jì)算某段代碼的執(zhí)行時(shí)間的方法和經(jīng)驗(yàn),有興趣的朋友們學(xué)習(xí)下。2019-02-02
淺談C#手機(jī)號(hào)換成111XXXX1111 這種顯示的解決思路
下面小編就為大家?guī)硪黄獪\談C#手機(jī)號(hào)換成111XXXX1111 這種顯示的解決思路。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
C#實(shí)現(xiàn)在控制臺(tái)輸入密碼顯示星號(hào)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)在控制臺(tái)輸入密碼顯示星號(hào)的方法,感興趣的小伙伴們可以參考一下2016-04-04
C# 重寫ComboBox實(shí)現(xiàn)下拉任意組件的方法
C#種的下拉框ComboBox不支持下拉復(fù)選框列表與下拉樹形列表等,系統(tǒng)中需要用到的地方使用了第三方組件,現(xiàn)在需要將第三方組件替換掉。這篇文章主要介紹了C# 重寫ComboBox實(shí)現(xiàn)下拉任意組件的相關(guān)資料,需要的朋友可以參考下2016-10-10

