首页 > 代码库 > 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())); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。