zoukankan      html  css  js  c++  java
  • 二进制、八进制、十进制、十六进制转换大全

    十进制转其他进制的方法:Convert.ToString(value,format)

    其他进制转十进制的方法:Convert.ToInt64(value,format)

    非十进制转非十进制就是先把其转成十进制,然后再转成其他进制,具体效果如下:

    代码如下:先建一个转换类

     public class Transform
        {
            internal string TenToBinary(long value)
            {
                return Convert.ToString(value, 2);
            }
    
            internal string TenToEight(long value)
            {
                return Convert.ToString(value, 8);
            }
    
            internal string TenToSixteen(long value)
            {
                return Convert.ToString(value, 16);
            }
    
            internal string BinaryToEight(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 2), 8);
            }
    
            internal string BinaryToTen(long value)
            {
                return Convert.ToInt64(value.ToString(), 2).ToString();
            }
    
            internal string BinaryToSixteen(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 2), 16);
            }
    
            internal string EightToBinary(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 8), 2);
            }
    
            internal string EightToTen(long value)
            {
                return Convert.ToInt64(value.ToString(), 8).ToString();
            }
    
            internal string EightToSixteen(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 8), 16);
            }
    
            internal string SixteenToBinary(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 16), 2);
            }
    
            internal string SixteenToEight(long value)
            {
                return Convert.ToString(
                    Convert.ToInt64(value.ToString(), 16), 8);
            }
    
            internal string SixteenToTen(long value)
            {
                return Convert.ToUInt64(value.ToString(), 16).ToString();
            }
    
        }

    然后进行级联操作:

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                comb_output.Items.AddRange(new object[] {
                "二进制",
                "八进制",
                "十进制",
                "十六进制"});
                comb_input.SelectedIndex = 2;
                comb_output.SelectedIndex = 0;
            }
    
            private void btn_convert_Click(object sender, EventArgs e)
            {
                long l_long_value=0L;
                Transform l_class_t=new Transform();
                try
                {
                    if (long.TryParse(txt_input.Text, out l_long_value))
                    {
                        if (comb_input.SelectedIndex == 0)
                        {
                            switch (comb_output.SelectedIndex)
                            {
                                case 0:
                                    {
                                        txt_output.Text = l_long_value.ToString();
                                        break;
                                    }
                                case 1:
                                    {
                                        txt_output.Text =
                                            l_class_t.BinaryToEight(l_long_value);
                                        break;
                                    }
                                case 2:
                                    {
                                        txt_output.Text =
                                           l_class_t.BinaryToTen(l_long_value);
                                        break;
                                    }
                                case 3:
                                    {
                                        txt_output.Text =
                                           l_class_t.EightToSixteen(l_long_value);
                                        break;
                                    }
                            }
                        }
                        else if (comb_input.SelectedIndex == 1)
                        {
                            switch (comb_output.SelectedIndex)
                            {
                                case 0:
                                    {
                                        txt_output.Text =
                                           l_class_t.EightToBinary(l_long_value);
                                        break;
                                    }
                                case 1:
                                    {
                                        txt_output.Text = l_long_value.ToString();
                                        break;
                                    }
                                case 2:
                                    {
                                        txt_output.Text =
                                           l_class_t.EightToTen(l_long_value);
                                        break;
                                    }
                                case 3:
                                    {
                                        txt_output.Text =
                                           l_class_t.EightToSixteen(l_long_value);
                                        break;
                                    }
                            }
                        }
                        else if (comb_input.SelectedIndex == 2)
                        {
                            switch (comb_output.SelectedIndex)
                            {
                                case 0:
                                    {
                                        txt_output.Text =
                                           l_class_t.TenToBinary(l_long_value);
                                        break;
                                    }
                                case 1:
                                    {
                                        txt_output.Text =
                                           l_class_t.TenToEight(l_long_value);
                                        break;
                                    }
                                case 2:
                                    {
                                        txt_output.Text = l_long_value.ToString();
                                        break;
                                    }
                                case 3:
                                    {
                                        txt_output.Text =
                                           l_class_t.TenToSixteen(l_long_value);
                                        break;
                                    }
                            }
                        }
                        else if (comb_input.SelectedIndex == 3)
                        {
                            switch (comb_output.SelectedIndex)
                            {
                                case 0:
                                    {
                                        txt_output.Text =
                                           l_class_t.SixteenToBinary(l_long_value);
                                        break;
                                    }
                                case 1:
                                    {
                                        txt_output.Text =
                                           l_class_t.SixteenToEight(l_long_value);
                                        break;
                                    }
                                case 2:
                                    {
                                        txt_output.Text =
                                           l_class_t.SixteenToTen(l_long_value);
                                        break;
                                    }
                                case 3:
                                    {
                                        txt_output.Text = l_long_value.ToString();
                                        break;
                                    }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("请输入正确数值");
                    }
                }
                catch 
                {
                    MessageBox.Show("输入与所选进制不符");
                }
            }
        }

    当然这段程序有个BUG,由于本文主要目的在于理清转换关系,再次就不进解决了。

    BUG 如下:

  • 相关阅读:
    JS之Cookie、localStorage与sessionStorage
    ES6之数组的扩展
    iView Form表单与DatePicker日期选择器
    自己实现LinkedList(非所有功能测试通过)
    自己实现基于数组的ArrayList的基本api
    Leetcode 448. 找到所有数组中消失的数字
    第六届福建省大学生程序设计竞赛不完全题解
    2016多校联合训练contest4 1012Bubble Sort
    2016 Multi-University Training Contest 2 第一题Acperience
    HDU 5726 GCD (2016 Multi-University Training Contest 1)
  • 原文地址:https://www.cnblogs.com/xuekai-to-sharp/p/3552381.html
Copyright © 2011-2022 走看看