我的想法是:将A~Z分解成26进制的数。比如"ABB"A为1,B为2,以此类推,则ABB为26的平方加1,加上,26的1次方+2 ,加上26的0次方+2 结果为 1378. 现在我的算法能实现由字母转换到数字。但是,没有好的方法,将转化好的1378还原回“ABB”,我按以前学的进制转换来处理的方法,对其进行处理不好使。请教各位高手请还有好的方法,帮小弟解决一下这个问题,谢谢!

解决方案 »

  1.   

    用ASCII码就可以了
    int i = (int)'A';
    //或
    byte bt = (byte)'A';//反过来一样
    char c = (char)i;
    //或
    char c = (char)bt;
      

  2.   

    StringBuilder sbW = null;
                for (int i = 1; i < 500;i++)//五百以内
                {
                    //实现你要的功能
                    sbW = new StringBuilder();
                    int n = i;
                    while (n != 0)
                    {
                        if (n % 26 == 0)
                        {
                            sbW.Insert(0, 'Z');
                            n = n / 26 - 1;
                        }
                        else
                        {
                            sbW.Insert(0, (char)((n % 26 - 1) + 'A'));
                            n /= 26;
                        }
                    }
                        Console.WriteLine(i.ToString() +"\t" +sbW.ToString());//输出
                }
      

  3.   

    sorry,只看题目,没看里面
    题目说的是字符,怎么里面变成字符串了
      

  4.   

    //26的幂都是常数
    //可以事先初始化一个整形数组arr[],存放26的幂
    int i = 0;
    int mi = 1;
    while(mi<int.MaxValue)
    {
        arr[i] = mi;
        mi *= 26;
        i++;
    }//循环用数组中的数比较,然后取余即可
      

  5.   

    学习ing  还不明白啊  高手说话