namespace JiaZhiQuan.Common.Utils { public class Hex62Convertor { private static string keys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//编码,可加一些字符也可以实现72,96等任意进制转换,但是有符号数据不直观,会影响阅读。 private static int exponent = keys.Length;//幂数 /// /// long value type to 62 string /// public static string Long2Str(long value) { string result = string.Empty; do { long index = value % exponent; result = keys[(int)index] + result; value = (value - index) / exponent; } while (value > 0); return result; } /// /// 62 encode string to long /// public static long Str2Long(string value) { long result = 0; for (int i = 0; i < value.Length; i++) { int x = value.Length - i - 1; result += keys.IndexOf(value[i]) * Pow(exponent, x);// Math.Pow(exponent, x); } return result; } /// /// 一个数据的N次方 /// private static long Pow(long baseNo, long x) { long value = 1;////1 will be the result for any number's power 0.任何数的0次方,结果都等于1 while (x > 0) { value = value * baseNo; x--; } return value; } } }