生成的类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApp5
{
public class Number
{
public string Characters
{
get;
set;
}
public int Length
{
get
{
if (Characters != null)
return Characters.Length;
else
return 0;
}
}
public Number()
{
Characters = "0123456789";
}
public Number(string characters)
{
Characters = characters;
}
/// <summary>
/// 数字转换为指定的进制形式字符串
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public string ToString(long number)
{
List<string> result = new List<string>();
if (number == 0) return Characters[0].ToString();
if (number % Length == 0)
{
number++;
}
else if (number % Length >0&&number>26)
{
number++;
if (number % Length == 0)
{
number++;
}
}
long t = number;
while (t > 0)
{
var mod = t % Length;
t = Math.Abs(t / Length);
var character = Characters[Convert.ToInt32(mod)].ToString();
result.Insert(0, character);
}
return string.Join("", result.ToArray());
}
/// <summary>
/// 指定字符串转换为指定进制的数字形式
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public long FromString(string str)
{
long result = 0;
int j = 0;
foreach (var ch in new string(str.ToCharArray().Reverse().ToArray()))
{
if (Characters.Contains(ch))
{
result += Characters.IndexOf(ch) * ((long)Math.Pow(Length, j));
j++;
}
}
return result;
}
}
}
调用的方法
Number number = new Number("0ABCDEFGHIJKLMNOPQRSTUVWXYZ");
string s= number.ToString(Convert.ToInt64(textBox1.Text));