二進制換為十進制的方法,例如:
二進制數: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 ();
}