while(true)
{
Console.WriteLine("请选择转换模式:\n 1 十进制转二进制 2 八进制转二进制 3 十六转二进制");intn =int.Parse(Console.ReadLine());switch(n)
{case1:
{
Console.WriteLine("请输入值");inta =int.Parse(Console.ReadLine());intsum= a;
Console.WriteLine("{0}的2进制为:", a);intnum =0;
stringstr="";int[] arr =newint[16];
do
{sum= a %2;//2或者8arr[num] =sum;
++num;
a = a /2;
}while(a >0);for(inti = arr.Length -1; i >=0; --i)
{str+= arr[i];
}
string str1 =str.TrimStart('0');//去除前面的0Console.WriteLine(str1);break;
}case2:
{
Console.WriteLine("请输入值");
string s = Console.ReadLine();
Console.WriteLine("{0}的2进制为:", s);char[] a = s.ToCharArray();//把输入的字符串分别存放进数组的每个下标对应位置int[] b =newint[s.Length];intsum=0;intd = s.Length;for(inti =0; i < s.Length; ++i)
{
string str1 =""+ a[i];
b[i] =int.Parse(str1);sum+= b[i] * (int)Math.Pow(8, d -1);
d = d -1;
}ints1 =sum;intnum =0;
stringstr="";int[] arr =newint[16];
do
{
s1 =sum%2;
arr[num] = s1;
++num;sum=sum/2;
}while(sum>0);for(inti = arr.Length -1; i >=0; --i)
{str+= arr[i];
}
string str2 =str.TrimStart('0');//去除前面的0Console.WriteLine(str2);break;
}case3:
{
Console.WriteLine("请输入值");
string s = Console.ReadLine();
Console.WriteLine("{0}的2进制为:", s);char[] a = s.ToCharArray();//把输入的字符串分别存放进数组的每个下标对应位置int[] b =newint[s.Length];intsum=0;intd = s.Length;
string str3 ="0x";
string str4 = s.Substring(0,2);
bool t = str3.Equals(str4);if(!t)
{for(inti =0; i < s.Length; ++i)
{if(a[i] >=65)
{intc = a[i];
b[i] = c -55;
}else{
string str1 =""+ a[i];
b[i] =int.Parse(str1);
}sum+= b[i] * (int)Math.Pow(16, d -1);
d = d -1;
}
}else{for(inti =2; i < s.Length; ++i)
{if(a[i] >=65)
{intc = a[i];
b[i] = c -55;
}else{
string str1 =""+ a[i];
b[i] =int.Parse(str1);
}sum+= b[i] * (int)Math.Pow(16, d -3);
d = d -1;
}
}ints1 =sum;intnum =0;
stringstr="";int[] arr =newint[16];
do
{
s1 =sum%2;
arr[num] = s1;
++num;sum=sum/2;
}while(sum>0);for(inti = arr.Length -1; i >=0; --i)
{str+= arr[i];
}
string str2 =str.TrimStart('0');//去除前面的0Console.WriteLine(str2);break;
}default:break;
}
}