C# VB 實現(xiàn)10進制 16進制之間互相轉換
更新時間:2012年11月30日 11:17:25 作者:
如何將10進制轉成16進制,又如何將16進制數(shù)轉成10進制,本文將介紹C#和VB實現(xiàn)代碼,需要了解的朋友可以參考下
方法1:
int d=10;
d.ToString("x") //或把x改為X,,,就變成了16位的字符串了.
int x=Convert.ToInt32(d.ToString("x"),16);//把16進制的字符串變回10進制的.
方法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());
}
}
復制代碼 代碼如下:
int d=10;
d.ToString("x") //或把x改為X,,,就變成了16位的字符串了.
int x=Convert.ToInt32(d.ToString("x"),16);//把16進制的字符串變回10進制的.
方法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());
}
}
相關文章
C#使用晚綁定來實現(xiàn)壓縮Access數(shù)據(jù)庫的方法
這篇文章主要介紹了C#使用晚綁定來實現(xiàn)壓縮Access數(shù)據(jù)庫的方法,項目開發(fā)中有一定的實用價值,需要的朋友可以參考下2014-08-08測試框架nunit之a(chǎn)ssertion斷言使用詳解
NUnit是.Net平臺的測試框架,廣泛用于.Net平臺的單元測試和回歸測試中,下面我們用示例詳細學習一下他的使用方法2014-01-01C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計算文件夾大小
這篇文章介紹了C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計算文件夾大小的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07解析C#中的私有構造函數(shù)和靜態(tài)構造函數(shù)
這篇文章主要介紹了C#中的私有構造函數(shù)和靜態(tài)構造函數(shù),是C#入門學習中的基礎知識,需要的朋友可以參考下2016-01-01