首页 > 代码库 > C# 十进制与十六进制互转

C# 十进制与十六进制互转

1.从十六进制转换为十进制

    /// <summary>        /// 十六进制转换到十进制        /// </summary>        /// <param name="hex"></param>        /// <returns></returns>        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;            }        }
this.txtStartShi.Text = Hex2Ten(this.txtStartSN.Text.Trim().Substring(4, 8));this.txtEndShi.Text = Hex2Ten(this.txtEndSN.Text.Trim().Substring(4, 8));

 

 

2.从十进制转换为十六进制

        /// <summary>        /// 从十进制转换到十六进制        /// </summary>        /// <param name="ten"></param>        /// <returns></returns>        public static string Ten2Hex(string ten)        {            ulong tenValue =http://www.mamicode.com/ Convert.ToUInt64(ten);            ulong divValue, resValue;            string hex = "";            do            {                //divValue = http://www.mamicode.com/(ulong)Math.Floor(tenValue / 16);                divValue = (ulong)Math.Floor((decimal)(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 "";            }        }
 int StartSN = Convert.ToInt32(this.txtStartShi.Text.Trim());int EndSN = Convert.ToInt32(this.txtEndShi.Text.Trim());  for (int i = 0; i < EndSN - StartSN + 1; i++)  {    listBox1.Items.Add("0014" + Ten2Hex((Convert.ToDouble(this.txtStartShi.Text) + i).ToString()));  }