用C#實現(xiàn)的十進制和十六進制的轉(zhuǎn)換函數(shù)

2010-08-28 10:50:44來源:西部e網(wǎng)作者:

1.十進制轉(zhuǎn)十六進制:

 public static string Ten2Hex(string ten)
 {
  ulong tenValue = Convert.ToUInt64(ten);
  ulong divValue,resValue;
  string hex = "";
  do
  {
   divValue = (ulong)Math.Floor(tenValue/16);
   resValue = tenValue%16;
   hex = tenValue2Char(resValue) + hex;
   tenValue = divValue;
  }
  while (tenValue >= 16);
  if (tenValue != 0)
   hex = tenValue2Char(tenValue) + hex;
  return hex;
 }

 public static string tenValue2Char(ulong ten)
 {
  switch(ten)
  {
   case 0:
   case 1:
   case 2:
   case 3:
   case 4:
   case 5:
   case 6:
   case 7:
   case 8:
   case 9:
    return ten.ToString();
   case 10:
    return "A";
   case 11:
    return "B";
   case 12:
    return "C";
   case 13:
    return "D";
   case 14:
    return "E";
   case 15:
    return "F";
   default:
    return "";
  }
 }

2.十六進制轉(zhuǎn)十進制:

 public static string Hex2Ten(string hex)
 {
  int ten = 0;
  for (int i=0,j=hex.Length-1 ; i<hex.Length ; i++)
  {
   ten += HexChar2Value(hex.Substring(i,1)) * ((int)Math.Pow(16,j));
   j--;
  }
  return ten.ToString();
 }

 public static int HexChar2Value(string hexChar)
 {
  switch (hexChar)
  {
   case "0":
   case "1":
   case "2":
   case "3":
   case "4":
   case "5":
   case "6":
   case "7":
   case "8":
   case "9":
    return Convert.ToInt32(hexChar);
   case "a":
   case "A":
    return 10;
   case "b":
   case "B":
    return 11;
   case "c":
   case "C":
    return 12;
   case "d":
   case "D":
    return 13;
   case "e":
   case "E":
    return 14;
   case "f":
   case "F":
    return 15;
   default:
    return 0;
  }
 }

關(guān)鍵詞:C#

贊助商鏈接: