using System;namespace _26进制 { /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { //public static string [] num = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p"}; /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { //0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p //Console.WriteLine(1291827 % 26); //Console.WriteLine((int)(1291827 / 26));// int k = 0,n=13*26*26,i=0,l=0; // l = leng(n); // if(l==0) // { // l = l + 1; // } // // string [] a = new string[l]; // while (n>0) // { // k=n%26; // n=(n-k)/26; // a[i]=k.ToString(); // i++; // } // // char [] c = GetChar(a); // // string sq = ""; // foreach(char e in c) // { // sq +=e; // } // Console.WriteLine(StrReversal(sq)); // // for(i=l-1;i>=0;i--) // { // Console.WriteLine(a[i]); // } // // Console.ReadLine();
string s = "110a"; string x = "20p"; //s = StrReversal(s); //x = StrReversal(x); Char[] aArray = s.ToCharArray(); //Console.WriteLine(GetNum(aArray)); Char[] xArray =x.ToCharArray(); Console.WriteLine(Convert.ToString(GetNum(xArray))+"+"+Convert.ToString(GetNum(aArray))+"="+Convert.ToString(GetNum(xArray)+GetNum(aArray))); int k = 0,i=0,l=0; double n = GetNum(xArray)+GetNum(aArray); l = leng(n); if(l==0) { l = l + 1; } string [] a = new string[l]; while (n>0) { k=(int)n%26; n=(n-k)/26; a[i]=k.ToString(); i++; } char [] c = GetChar(a); string sq = ""; foreach(char e in c) { sq +=e; } Console.WriteLine(s+"+"+x+"="+StrReversal(sq)); Console.ReadLine(); // Console.WriteLine(n("p").ToString()); Console.ReadLine(); } public static String StrReversal(String oldString) { //Convert string to char arry Char[] oldCharArray = oldString.ToCharArray(); //Reversal from zero int index = 0; int cLength = oldCharArray.Length - 1; while(index<cLength) { //use char CTemp to swap char cTemp = oldCharArray[index]; oldCharArray[index] = oldCharArray[cLength]; oldCharArray[cLength] = cTemp; index ++; cLength --; } //Convert char array to string only have the constructor method string newString = new string(oldCharArray); return newString; } // private static string [] GetArray(string s) // { // s = ""; // //double n = 0; // string [] a = new string[s.Length]; // for(int i=0;i<s.Length;i++) // { // a[i] = s.Substring(i,1); // } // return a; // } private static double GetNum(char[] s) { double Snum = 0; int n = 0; for(int i=0;i<s.Length;i++) { if(s[i]>'9') { n = (int)s[i] - 87; } else { n = (int)s[i] - 48; } Snum = Snum + n * Math.Pow(26,s.Length-1-i); }
return Snum; } private static char [] GetChar(string[] a) { char [] c = new char[a.Length]; char n = 'a'; for(int i=0;i<a.Length;i++) { if(Convert.ToInt32(a[i])>9) { n = (char)(Convert.ToInt32(a[i]) + 87); } else { n = (char)(Convert.ToInt32(a[i]) + 48); } c[i] = n; }
return c; } private static int leng(double n) { int i=0; double s = 0; for(;;i++) { s = Math.Pow(26,i); if(s>n) { break; } else { continue; } } return i; } } } 解贴后给出完美版
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
//public static string [] num = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p"}; /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p //Console.WriteLine(1291827 % 26);
//Console.WriteLine((int)(1291827 / 26));// int k = 0,n=13*26*26,i=0,l=0;
// l = leng(n);
// if(l==0)
// {
// l = l + 1;
// }
//
// string [] a = new string[l];
// while (n>0)
// {
// k=n%26;
// n=(n-k)/26;
// a[i]=k.ToString();
// i++;
// }
//
// char [] c = GetChar(a);
//
// string sq = "";
// foreach(char e in c)
// {
// sq +=e;
// }
// Console.WriteLine(StrReversal(sq));
//
// for(i=l-1;i>=0;i--)
// {
// Console.WriteLine(a[i]);
// }
//
// Console.ReadLine();
string s = "110a";
string x = "20p";
//s = StrReversal(s);
//x = StrReversal(x);
Char[] aArray = s.ToCharArray();
//Console.WriteLine(GetNum(aArray)); Char[] xArray =x.ToCharArray();
Console.WriteLine(Convert.ToString(GetNum(xArray))+"+"+Convert.ToString(GetNum(aArray))+"="+Convert.ToString(GetNum(xArray)+GetNum(aArray)));
int k = 0,i=0,l=0;
double n = GetNum(xArray)+GetNum(aArray);
l = leng(n);
if(l==0)
{
l = l + 1;
} string [] a = new string[l];
while (n>0)
{
k=(int)n%26;
n=(n-k)/26;
a[i]=k.ToString();
i++;
} char [] c = GetChar(a); string sq = "";
foreach(char e in c)
{
sq +=e;
}
Console.WriteLine(s+"+"+x+"="+StrReversal(sq));
Console.ReadLine();
// Console.WriteLine(n("p").ToString());
Console.ReadLine();
} public static String StrReversal(String oldString)
{
//Convert string to char arry
Char[] oldCharArray = oldString.ToCharArray();
//Reversal from zero
int index = 0;
int cLength = oldCharArray.Length - 1;
while(index<cLength)
{
//use char CTemp to swap
char cTemp = oldCharArray[index];
oldCharArray[index] = oldCharArray[cLength];
oldCharArray[cLength] = cTemp;
index ++;
cLength --;
}
//Convert char array to string only have the constructor method
string newString = new string(oldCharArray);
return newString;
}
// private static string [] GetArray(string s)
// {
// s = "";
// //double n = 0;
// string [] a = new string[s.Length];
// for(int i=0;i<s.Length;i++)
// {
// a[i] = s.Substring(i,1);
// }
// return a;
// } private static double GetNum(char[] s)
{
double Snum = 0;
int n = 0;
for(int i=0;i<s.Length;i++)
{
if(s[i]>'9')
{
n = (int)s[i] - 87;
}
else
{
n = (int)s[i] - 48;
}
Snum = Snum + n * Math.Pow(26,s.Length-1-i);
}
return Snum;
} private static char [] GetChar(string[] a)
{
char [] c = new char[a.Length];
char n = 'a';
for(int i=0;i<a.Length;i++)
{
if(Convert.ToInt32(a[i])>9)
{
n = (char)(Convert.ToInt32(a[i]) + 87);
}
else
{ n = (char)(Convert.ToInt32(a[i]) + 48);
}
c[i] = n;
}
return c;
} private static int leng(double n)
{
int i=0;
double s = 0;
for(;;i++)
{
s = Math.Pow(26,i);
if(s>n)
{
break;
}
else
{
continue;
}
}
return i;
}
}
}
解贴后给出完美版