Winform——计算器进制转换

namespace 进制转换2._0
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string Shizhuaner(int a, int jinzhi) //十转二
        {
            string jieguo = "";
            while (true)
            {
                string s = (a % jinzhi).ToString(); //s的值为a%2后的数,因为进制是2。
                jieguo = s + jieguo; //s在前面是为了让结果倒序输出
                a = a / jinzhi;
                if (a == 0)
                {
                    break;
                }

            }
            return jieguo;
        }

        private void button1_Click(object sender, EventArgs e) //十转二
        {
            string x = Shizhuanba(int.Parse(textBox1.Text), 2);
            textBox2.Text = x;
        }

        public string Shizhuanba(int a, int jinzhi) //十转八
        {
            string jieguo = "";
            while (true)
            {
                string s = (a % jinzhi).ToString();
                jieguo = s + jieguo;
                a = a / jinzhi;
                if (a == 0)
                {
                    break;
                }

            }
            return jieguo;
        }

        private void button2_Click(object sender, EventArgs e) //十转八
        {
            string x = Shizhuanba(int.Parse(textBox1.Text), 8);
            textBox3.Text = x;
        }

        public string Shizhuanshiliu(int a,int jinzhi) //十转十六
        {
            string jieguo = "";
                while (true)
                {
                    int yushu = a % jinzhi;
                    string s = "";
                    if(yushu==10)
                    {
                        s = "A";
                    }
                    else if (yushu == 11)
                    {
                        s = "B";
                    }
                    else if (yushu == 12)
                    {
                        s = "C";
                    }
                    else if (yushu == 13)
                    {
                        s = "D";
                    }
                    else if (yushu == 14)
                    {
                        s = "E";
                    }
                    else if (yushu == 15)
                    {
                        s = "F";
                    }
                    else
                    {
                        s = yushu.ToString();
                    }
                    jieguo = s + jieguo;
                    a = a / jinzhi;
                    if (a == 0)
                    {
                        break;
                    }
                }
            return jieguo;
        }

        private void button3_Click(object sender, EventArgs e) //十转十六
        {
            string x = Shizhuanshiliu(int.Parse(textBox1.Text), 16);
            textBox4.Text = x;
        }

        private void button7_Click(object sender, EventArgs e) //清空键
        {
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox7.Text = "";
        }

        public string Erzhuanshi(string a)  //二转十
        {
            string jieguo = "";
            int length=a.Length;
            int Sum = 0;
            int n = 0;
            while (true)
            {
                double y = int.Parse(a.Substring(length - 1, 1)) *Math.Pow(2,n);
                length--;
                n++;
                int y1 = (int)y;
                Sum =Sum+y1 ;
                jieguo = Sum.ToString();
                if(length==0)
                {
                    break;
                }
            }
            return jieguo;
        }
        private void button6_Click(object sender, EventArgs e) //二转十
        {

            string s = Erzhuanshi(textBox2.Text);
            textBox5.Text = s;
        }

        public string Bazhuanshi(string a)  //八转十
        {
            string jieguo = "";
            int length = a.Length;
            int Sum = 0;
            int n = 0;
            while (true)
            {
                double y = int.Parse(a.Substring(length - 1, 1)) * Math.Pow(8, n);
                length--;
                n++;
                int y1 = (int)y;
                Sum = Sum + y1;
                jieguo = Sum.ToString();
                if (length == 0)
                {
                    break;
                }
            }
            return jieguo;
        }

        private void button5_Click(object sender, EventArgs e) //八转十
        {
            string s = Bazhuanshi(textBox3.Text);
            textBox6.Text = s;
        }

        public string shiliuzhuanshi(string a)  //十六转十
        {
            string jieguo = "";
            int length = a.Length;
            int Sum = 0;
            int n = 0;

            while (true)
            {
                 /*
                 A代表10
                 B代表11
                 C代表12
                 D代表13
                 E代表14
                 F代表15
                 */
                string z = a.Substring(length - 1, 1);
                if(z=="A")
                {
                    z = "10";
                }
                else if (z == "B")
                {
                    z = "11";
                }
                else if (z == "C")
                {
                    z = "12";
                }
                else if (z == "D")
                {
                    z = "13";
                }
                else if (z == "E")
                {
                    z = "14";
                }
                else if (z == "F")
                {
                    z = "15";
                }
                else
                { 

                }
                double y = double.Parse(z) * Math.Pow(16, n);
                length--;
                n++;
                int y1 = (int)y;
                Sum = Sum + y1;
                jieguo = Sum.ToString();
                if (length == 0)
                {
                    break;
                }
            }
            return jieguo;
        }
        private void button4_Click(object sender, EventArgs e) //十六转十
        {
            string s = shiliuzhuanshi(textBox4.Text);
            textBox7.Text = s;
        }
    }
}
时间: 2024-10-16 12:37:37

Winform——计算器进制转换的相关文章

Linux命令之bc - 浮点计算器、进制转换

用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calculator language,即一个任意精度的计算语言,注意是一种语言,它提供了一些语法结构,比如条件判断.循环等,可以说是很强大的,但是我在实际中还没有找 到需要这个用途的场合 .另外一个用途就是用来进行进制转换. 常用参数 一般情况下,我们使用不带任何参数的bc命令. bc 如果需要bc不输出提

学习入门---进制转换

常用的进制数制:二进制.八进制.十进制.十六进制··· 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠为逻辑设计提供了有了的途径.节省设备等优点··· 今天老师推荐了学习的方法:1.分类  2.建模型 并通过画图来讲解不同数制之间的转换关系,让我们更容易理解记忆 二进制转十进制,八进制转十进制: 1. 写底数 2. 写质数 3. 乘系数 4. 相加 十进制转二进制,十进制转八进制: 1. 除2(或8)取余 2. 除到商为0为止 3. 记号余数 4. 余数倒排 二进制转八进制(八进制

获取码值和进制转换系统(包括正负数、小数)

获取码值和进制转换 程序由来: 本人发现计算机中的计算器木有将十进制小数转二进制的功能,后来发现一些网站将十进制负数转二进制只是求出整数的二进制,然后前面加"-",这种表示不是真正的负数二进制.于是爱较真儿的我写了一个可以转十进制小数.负数.负数加小数为二进制的系统,供大家学习参考.介于理解代码,代码中运用到了纯拼音.虽然是拼音,但符合代码编写格式.介于个人知识有限,代码如有需要修改和改进的地方,敬请大家评教指正,共同学习. 实现功能: 获取字符的码值,包括中文. 进制转换包括:十进制

获取码值(各种类型字符(中、英)的ASCII)和进制转换系统(包括正负数、小数)

获取码值和进制转换 程序由来: 本人发现计算机中的计算器木有将十进制小数转二进制的功能,后来发现一些网站将十进制负数转二进制只是求出整数的二进制,然后前面加"-",这种表示不是真正的负数二进制.于是爱较真儿的我写了一个可以转十进制小数.负数.负数加小数为二进制的系统,供大家学习参考.介于理解代码,代码中运用到了纯拼音.虽然是拼音,但符合代码编写格式.介于个人知识有限,代码如有需要修改和改进的地方,敬请大家评教指正,共同学习. 实现功能: 获取字符的码值,包括中文. 进制转换包括:十进制

01、Java基础语法(常量、进制转换、原/反/补码、变量和数据类型)

1.常量 2.进制转换 3.原码.反码和补码 4.变量和数据类型 1.常量 常量:在程序执行过程中其值不发生改变. Java中常量的分类: 字面值常量: 自定义常量:(面向对象讲解,static final) 字面值常量的分类: 字符串常量:(用双引号引起来的内容, "HelloWorld") 整数常量:(所有整数,12,23) 字符常量:(用单引号引起来的内容,'A','1','中') 小数常量:(所有小数,3.14) 布尔常量:(只有true和false) 空常量null:(数组部

任意进制转换算法

任意进制转换算法 N年没有写博客,发个进制转换的玩下,支持负数:功能属于简化版的 Convert.ToInt32 ,特点是: 1.任意位,如:0,1(二进制),0...7(八进制),0...9,A...F(16进制),0...N(N进制),或者是:[email protected]#$%^&*(8进制,字符符号),也可以是中文. 2.8 byte 最大长度. 3.C#源码. 最近写markdown格式习惯啦,cnblogs啥时候全改掉算了,别用这个htmleditor算了. 先说明下进制转换的基

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

计算机进制转换

一.计算机只认识0和1,二进制. 二.2进制转换成 8进制 和 16进制,如下图: 二进制 > 八进制 :  研究上图发现,3位最高二进制可以用来表示一位八进制.所以,将二进制分解每3位,不够前面补0,然后每3位转换为10进制,顺序排列即可. 二进制 > 十六进制  :4位最高二进制可以用来表示一位十六进制.所以,将二进制分解每4位,不够前面补0,然后每4位转换为10进制,超过9用字母表示即可.顺序排列即可. 如下: 二进制 > 十进制:   11001001 = 2^7+2^6+2^3

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E