进制转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication19 { class Program { static void Main(string[] args) { //第一步输入三个信息 Console.Write("请输入你要转换的数字:"); string s = Console.ReadLine(); Console.Write("请输入你输入的进制类型:"); double a = double.Parse(Console.ReadLine()); Console.Write("请输入你要转换成的进制:"); double b = double.Parse(Console.ReadLine()); //第二步,其他进制转十进制 double sum = 0; for (int i = 0; i < s.Length; i++)//for,初始条件是从0开始,到字符串的长度为止,顺着字符串索引在一步步走 { double mws = 0; string zimu = s.Substring(i, 1); if (zimu == "A") { mws = 10; } else if (zimu == "B") { mws = 11; } else if (zimu == "C") { mws = 12; } else if (zimu == "D") { mws = 13; } else if (zimu == "E") { mws = 14; } else if (zimu == "F") { mws = 15; } else { mws = double.Parse(zimu); } double zhishu = s.Length - 1 - i; sum += mws * Math.Pow(a,zhishu); } Console.WriteLine(sum); //第三步,十进制转其他进制 string jieguo = ""; while (true) { if (sum / b >= 1) { double yushu = sum % b;//取余数 if (yushu >= 10) { if (yushu == 10) { jieguo = "A" + jieguo; } if (yushu == 11) { jieguo = "B" + jieguo; } if (yushu == 12) { jieguo = "C" + jieguo; } if (yushu == 13) { jieguo = "D" + jieguo; } if (yushu == 14) { jieguo = "E" + jieguo; } if (yushu == 15) { jieguo = "F" + jieguo; } } else { jieguo = yushu.ToString() + jieguo; } } else//当除到sum比b小的时候,直接把sum加到结果字符串中 { if (sum >= 10) { if (sum == 10) { jieguo = "A" + jieguo; } if (sum == 11) { jieguo = "B" + jieguo; } if (sum == 12) { jieguo = "C" + jieguo; } if (sum == 13) { jieguo = "D" + jieguo; } if (sum == 14) { jieguo = "E" + jieguo; } if (sum == 15) { jieguo = "F" + jieguo; } } else { jieguo = sum.ToString() + jieguo; } break; } sum = (int)(sum / b); } Console.WriteLine(jieguo); Console.ReadLine(); } } }