C# VB 实现10进制 16进制之间互相转换
C# VB 实现10进制 16进制之间互相转换
发布时间:2016-12-28 来源:查字典编辑
摘要:方法1:复制代码代码如下:intd=10;d.ToString("x")//或把x改为X,,,就变成了16位的字符串了.intx=Conve...

方法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());

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类