如标题所示, 将Keys改成对应的进制字符即可
另,优化点 1. 增加大小写字符可能会引起不直观的字符串生成
2.0和o应当去除其中一个,否则同样会引起不直观字符生成
private static readonly string Keys = "123456789abcdefghijklmnopqrstuvwxyz";//编码,可加一些字符也可以实现72,96等任意进制转换,但是有符号数据不直观,会影响阅读。 private static readonly int Exponent = Keys.Length;//幂数 /// <summary> /// decimal 转N进制 /// </summary> /// <param name="val"></param> /// <returns></returns> public static string Decimal2Str(decimal val) { Stack<char> rr = new Stack<char>(); do { decimal ys = val % Exponent; val /= Exponent; rr.Push(Keys[(int)ys]); if (val < Exponent) { rr.Push(Keys[(int)val]); } } while (val >= Exponent); var str = string.Empty; while (rr.Count > 0) { str += rr.Pop(); } return str; }