码迷,mamicode.com
首页 > 其他好文 > 详细

进制转换

时间:2015-06-19 15:04:54      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

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();
        }
    }
}

 

进制转换

标签:

原文地址:http://www.cnblogs.com/qixinjian/p/4588546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!