110,533
社区成员
发帖
与我相关
我的任务
分享
string tento26(uint n)
{
return (n>=26?tento26(n/26-1):"")+(char)(n%26+'A');
}
using System;
using System.Text;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (var i = 0; i <= 727; i++)
{
var x = 转换AAA进制(i);
Console.Write("{0}={1}={2}\t", i, x, 转换AAA进制(x));
}
Console.ReadKey();
}
private static string 转换AAA进制(int x)
{
var res = new StringBuilder();
begin:
if (x < 0)
return new string(res.ToString().Reverse().ToArray());
var a = x / 26;
var b = x % 26;
res.Append((char)(b + 'A'));
x = a - 1;
goto begin;
}
private static int 转换AAA进制(string x)
{
return AAA(x, x.Length - 1);
}
private static int AAA(string x, int end)
{
var n = x[end] - 'A';
if (end == 0)
return n;
return (AAA(x, end - 1) + 1) * 26 + n;
}
}
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (var i = 0; i <= 727; i++)
{
var x = 转换AAA进制(i);
Console.Write("{0}={1}={2}\t", i, x, 转换AAA进制(x));
}
Console.ReadKey();
}
private static string 转换AAA进制(int x)
{
if (x < 0)
return string.Empty;
var a = x / 26;
var b = x % 26;
return 转换AAA进制(a - 1) + (char)(b + 'A');
}
private static int 转换AAA进制(string x)
{
return AAA(x, x.Length - 1);
}
private static int AAA(string x, int end)
{
var n = x[end] - 'A';
if (end == 0)
return n;
return (AAA(x, end - 1) + 1) * 26 + n;
}
}
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (var i = 0; i <= 727; i++)
{
Console.Write("{0}={1}\t", i, 转换26进制(i));
}
Console.ReadKey();
}
private static string 转换26进制(int x)
{
if (x < 0)
return string.Empty;
var a = x / 26;
var b = x % 26;
return 转换26进制(a - 1) + (char)(b + 'A');
}
}
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (var i = 0; i <= 727; i++)
{
Console.Write("{0}={1}\t", i, 转换26进制(i));
}
Console.ReadKey();
}
private static string 转换26进制(int x)
{
if (x < 0)
return string.Empty;
if (x == 0)
return "A";
var a = x / 26;
var b = x % 26;
return 转换26进制(a - 1) + (char)(b + 'A');
}
}
}
static string GetConvert(uint number)
{
StringBuilder tmp = new StringBuilder();
uint tmpInt = number % 26;
tmp.Append((char)(tmpInt + 65));
number = number / 26;
while (number > 0)
{
tmpInt = number % 26;
number = number / 26;
if (tmpInt != 0)
{
tmp.Insert(0, (char)(tmpInt + 64));
}
else
{
if(number>0)
{
tmp.Insert(0, 'Z');
number--;
}
}
}
return tmp.ToString();
}
按你的需求改的,反正不是正常的进制……
至少你的例子都满足了private static string 转换26进制(int x)
{
if (x < 0)
return string.Empty;
if (x == 0)
return "A";
var a = x / 26;
var b = x % 26;
return 转换26进制(a - 1) + (char)(b + 'A');
}
public static string 转换26进制(int x)
{
if (x == 0)
return "A";
var a = x / 26;
var b = x % 26;
return 转换26进制(a - 1) + (char)(b + 'A');
}