各进制转换成二进制

来源:互联网 发布:center os安装windows 编辑:程序博客网 时间:2024/05/17 22:54
    while (true)            {                       Console.WriteLine("请选择转换模式:\n 1 十进制转二进制 2 八进制转二进制 3 十六转二进制");                int n = int.Parse(Console.ReadLine());                switch (n)                {                    case 1:                        {                            Console.WriteLine("请输入值");                            int a = int.Parse(Console.ReadLine());                            int sum = a;                            Console.WriteLine("{0}的2进制为:", a);                            int num = 0;                            string str = "";                            int[] arr = new int[16];                            do                            {                                sum = a % 2;//2或者8                                arr[num] = sum;                                ++num;                                a = a / 2;                            } while (a > 0);                            for (int i = arr.Length - 1; i >= 0; --i)                            {                                                                                                           str += arr[i];                            }                            string str1 = str.TrimStart('0');//去除前面的0                            Console.WriteLine(str1);                            break;                        }                    case 2:                        {                            Console.WriteLine("请输入值");                            string s = Console.ReadLine();                            Console.WriteLine("{0}的2进制为:", s);                            char[] a = s.ToCharArray();                            //把输入的字符串分别存放进数组的每个下标对应位置                            int[] b = new int[s.Length];                            int sum = 0;                            int d = s.Length;                            for (int i = 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;                            }                            int s1 = sum;                            int num = 0;                            string str = "";                            int[] arr = new int[16];                            do                            {                                s1 = sum % 2;                                arr[num] = s1;                                ++num;                                sum = sum / 2;                            } while (sum > 0);                            for (int i = arr.Length - 1; i >= 0; --i)                            {                                str += arr[i];                            }                            string str2 = str.TrimStart('0');//去除前面的0                            Console.WriteLine(str2);                            break;                        }                    case 3:                        {                            Console.WriteLine("请输入值");                            string s = Console.ReadLine();                            Console.WriteLine("{0}的2进制为:", s);                            char[] a = s.ToCharArray();//把输入的字符串分别存放进数组的每个下标对应位置                            int[] b = new int[s.Length];                            int sum = 0;                            int d = s.Length;                            string str3 = "0x";                            string str4 = s.Substring(0, 2);                            bool t = str3.Equals(str4);                            if (!t)                            {                                for (int i = 0; i < s.Length; ++i)                                {                                    if (a[i] >= 65)                                    {                                        int c = 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 (int i = 2; i < s.Length; ++i)                                {                                    if (a[i] >= 65)                                    {                                        int c = 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;                                }                            }                            int s1 = sum;                            int num = 0;                            string str = "";                            int[] arr = new int[16];                            do                            {                                s1 = sum % 2;                                arr[num] = s1;                                ++num;                                sum = sum / 2;                            } while (sum > 0);                            for (int i = arr.Length - 1; i >= 0; --i)                            {                                str += arr[i];                            }                            string str2 = str.TrimStart('0');//去除前面的0                            Console.WriteLine(str2);                            break;                        }                    default:                        break;                }            }
原创粉丝点击