Welcome

首页 / 软件开发 / C# / C#实现二、八、十六进制数转十进制数的算法

C#实现二、八、十六进制数转十进制数的算法2010-12-19二进制换为十进制的方法,例如:

二进制数:11001

十进制数:1*24+1*23+0*22+0*21+1*20=25

八进制换为十进制的方法,例如:

八进制数:32007

十进制数:3*84+2*83+0*82+0*81+7*80=13319

十六进制换为十进制的方法,例如:

十六进制数:a20f(由于十六进制数用a~f表示10~15之间的数,所以计算时将a~f用10~15表示)

十进制数: 10*83+2*82+0*81+15*80=41487

通过以上二、八、十六进制数转十进制数的计算方法,可得出计算的代码为:

//参数Num为需要转换的数,n为该数的进制
public string ToD(string Num, int n)
{
char[] nums=Num.ToCharArray ();
int d = 0;
for (int i = 0; i <nums.Length ; i++)
{
string number=nums [i].ToString ();
if (n == 16)
{
switch (number.ToUpper ())
{
case "A":
number = "10";
break;
case "B":
number = "11";
break;
case "C":
number = "12";
break;
case "D":
number = "13";
break;
case "E":
number = "14";
break;
case "F":
number = "15";
break;
}
}
Double power = Math.Pow(Convert.ToDouble (n),Convert.ToDouble ( nums.Length - (i + 1)));
d = d + Convert.ToInt32 (number) * Convert.ToInt32 (power);
}
return d.ToString ();
}