刚接触C#时本人写了个关于进制转换的问题,时隔数月拿来看看算还行吧,虽然不是很精妙,但毕竟是自己原创的东西,所以拿出来与大家分享下,同时也希望大虾给指导下.。。。呵呵
using System;
namespace DataExchange
{
/// <summary>
/// Datachange 的摘要说明。
/// </summary>
public class Datachange
{
public Datachange()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region-------十进制转换为其他进制
/// <summary>
/// 十进制转换为其他进制
/// </summary>
/// <param name="Ten">要转换的十进制的字符串形式</param>
/// <param name="j">要转换的目标进制的数字形式</param>
/// <returns>返回转换后的目标进制的字符串形式</returns>
public string TenChangeOther(string Ten, int j)
{
string StrObject="";
int I_ten;//临时变量存放要转换的十进制
//处理输入的非数字字符
for(int l=0; l<Ten.Length; l++)
{
if(!char.IsNumber(Ten[l]))
return "对不起,您输入的数据错误,请重新输入";
}
I_ten=Convert.ToInt32(Ten);
//初始化数组用来存放转换后的结果
const int M=50;
char []s= new char[M];
int i=0;
while(I_ten>=j)
{
int h=I_ten%j;
s[i]=(char)(h > 9 ? ('A' + h - 10) : h + '0');
I_ten=I_ten/j;
i++;
}
s[i]=(char)(I_ten > 9 ? ('A' + I_ten - 10) : I_ten + '0');
//for循环倒叙存放转换后的结果
for(int k=i; k>= 0; k--)
{
StrObject+=s[k].ToString();
}
return StrObject;
}
#endregion
#region--------其他进制转换为十进制
/// <summary>
/// 其他进制转换为十进制
/// </summary>
/// <param name="Other">要转换的字符串</param>
/// <param name="I_quan">权数</param>
/// <returns>返回转换为十进制的字符串形式</returns>
public string OtherChangeTen(string Other, int I_quan)
{
Other=Other.ToUpper();
double sum=0;//存放拆分后的和
int i=Other.Length;//设置指数
int Temp;//存放从数组里拆分后的数
int x=0;
double y;
while(x < Other.Length)
{
i--;
if(Other[x]>='A'&&Other[x]<='Z')
{
if(Other[x]>'F')
{
return "对不起,您输入的数据错误,请重新输入";
}
else
{
Temp=Other[x]-55;//获取字符对应的数据
}
}
else
{
Temp=int.Parse(Other.Substring(x,1));
if(Temp > I_quan)
return "123对不起,您输入的数据错误,请重新输入";
}
y=Temp* Math.Pow(I_quan,i);
sum+=y;
x++;
}
return sum.ToString();
}
#endregion
}
}
这只是程序的一部分相信看到这里您完全有能力来调用这个类的功能了,至于如何验证本人不在高手面前买弄了,其实很简单的 。。。。。。(2006/10/9)