精华内容
下载资源
问答
  • 二进制、八进制、十进制计算器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown...

    前言

    该计算器程序支持二进制、八进制、十进制之间的互相转换,同时也支持二进制、八进制、十进制的计算。但是需要注意的是:程序可能存在着些许错误,请体谅笔者的水平。笔者提供了程序的完整文件,包括程序源代码。
    本程序提供了“面向对象”和“面向过程”两种设计思路。

    界面效果图

    在这里插入图片描述

    Calculator类的代码

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MyCalculator
    {
        public class Calculator
        {
            //进制类型的枚举
            public enum _bases { bin = 2, oct = 8, dec = 10 }
            //标志当前运算进制,默认为十进制
            public _bases _currentBase = _bases.dec;
    
            //运算符的枚举
            public enum _operators { add = 1, subtract = 2, multiply = 3, divide = 4}
            //运算符默认为“+”
            public _operators _operator = _operators.add;
    
            //进行各种进制下的各种运算
            public string calculate(string num1, string num2)
            {
                string result;
                //如果是二进制
                if(_currentBase == _bases.bin)
                {
                    if (_operator == _operators.add)
                        result = BinAdd(num1, num2);
                    else if (_operator == _operators.subtract)
                        result = BinSubtract(num1, num2);
                    else if (_operator == _operators.multiply)
                        result = BinMultiply(num1, num2);
                    else
                        result = BinDivide(num1, num2);
                }
                //如果是八进制
                else if (_currentBase == _bases.oct)
                {
                    if (_operator == _operators.add)
                        result = OctAdd(num1, num2);
                    else if (_operator == _operators.subtract)
                        result = OctSubtract(num1, num2);
                    else if (_operator == _operators.multiply)
                        result = OctMultiply(num1, num2);
                    else
                        result = OctDivide(num1, num2);
                }
                //如果是十进制
                else
                {
                    if (_operator == _operators.add)
                        result = DecAdd(num1, num2);
                    else if (_operator == _operators.subtract)
                        result = DecSubtract(num1, num2);
                    else if (_operator == _operators.multiply)
                        result = DecMultiply(num1, num2);
                    else
                        result = DecDivide(num1, num2);
                }
    
                return result;
            }
            
            //二进制转八进制
            public string BinToOct(string bin)
            {
                string oct;
                oct = Convert.ToString(Convert.ToInt32(bin, 2), 8);
    
                return oct;
            }
    
            //二进制转十进制
            public string BinToDec(string bin)
            {
                string dec;
                dec = Convert.ToInt32(bin, 2).ToString();
    
                return dec;
            }
    
            //八进制转二进制
            public string OctToBin(string oct)
            {
                string bin;
                bin = Convert.ToString(Convert.ToInt32(oct, 8), 2);
    
                return bin;
            }
    
            //八进制转十进制
            public string OctToDec(string oct)
            {
                string dec;
                dec = Convert.ToInt32(oct, 8).ToString();
    
                return dec;
            }
    
            //十进制转二进制
            public string DecToBin(string dec)
            {
                string bin;
                bin = Convert.ToString(Convert.ToInt32(dec), 2);
    
                return bin;
            }
    
            //十进制转八进制
            public string DecToOct(string dec)
            {
                string oct;
                oct = Convert.ToString(Convert.ToInt32(dec), 8);
    
                return oct;
            }
    
            //二进制加法
            public string BinAdd(string num1, string num2)
            {
                string result;
                string num1Dec = BinToDec(num1);
                string num2Dec = BinToDec(num2);
                result = DecToBin(Convert.ToString(Convert.ToInt32(num1Dec) + Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //二进制减法
            public string BinSubtract(string num1, string num2)
            {
                string result;
                string num1Dec = BinToDec(num1);
                string num2Dec = BinToDec(num2);
                result = DecToBin(Convert.ToString(Convert.ToInt32(num1Dec) - Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //二进制乘法
            public string BinMultiply(string num1, string num2)
            {
                string result;
                string num1Dec = BinToDec(num1);
                string num2Dec = BinToDec(num2);
                result = DecToBin(Convert.ToString(Convert.ToInt32(num1Dec) * Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //二进制除法
            public string BinDivide(string num1, string num2)
            {
                string result;
                string num1Dec = BinToDec(num1);
                string num2Dec = BinToDec(num2);
                result = DecToBin(Convert.ToString(Convert.ToInt32(num1Dec) / Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //八进制加法
            public string OctAdd(string num1, string num2)
            {
                string result;
                string num1Dec = OctToDec(num1);
                string num2Dec = OctToDec(num2);
                result = DecToOct(Convert.ToString(Convert.ToInt32(num1Dec) + Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //八进制减法
            public string OctSubtract(string num1, string num2)
            {
                string result;
                string num1Dec = OctToDec(num1);
                string num2Dec = OctToDec(num2);
                result = DecToOct(Convert.ToString(Convert.ToInt32(num1Dec) - Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //八进制乘法
            public string OctMultiply(string num1, string num2)
            {
                string result;
                string num1Dec = OctToDec(num1);
                string num2Dec = OctToDec(num2);
                result = DecToOct(Convert.ToString(Convert.ToInt32(num1Dec) * Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //八进制除法
            public string OctDivide(string num1, string num2)
            {
                string result;
                string num1Dec = OctToDec(num1);
                string num2Dec = OctToDec(num2);
                result = DecToOct(Convert.ToString(Convert.ToInt32(num1Dec) / Convert.ToInt32(num2Dec)));
    
                return result;
            }
    
            //十进制加法
            public string DecAdd(string num1, string num2)
            {
                string result;
                decimal num1Dec = Convert.ToDecimal(num1);
                decimal num2Dec = Convert.ToDecimal(num2);
                result = Convert.ToString(num1Dec + num2Dec);
    
                return result;
            }
    
            //十进制减法
            public string DecSubtract(string num1, string num2)
            {
                string result;
                decimal num1Dec = Convert.ToDecimal(num1);
                decimal num2Dec = Convert.ToDecimal(num2);
                result = Convert.ToString(num1Dec - num2Dec);
    
                return result;
            }
    
            //十进制乘法
            public string DecMultiply(string num1, string num2)
            {
                string result;
                decimal num1Dec = Convert.ToDecimal(num1);
                decimal num2Dec = Convert.ToDecimal(num2);
                result = Convert.ToString(num1Dec * num2Dec);
    
                return result;
            }
    
            //十进制除法
            public string DecDivide(string num1, string num2)
            {
                string result;
                decimal num1Dec = Convert.ToDecimal(num1);
                decimal num2Dec = Convert.ToDecimal(num2);
                result = Convert.ToString(num1Dec / num2Dec);
    
                return result;
            }
        }
    }
    

    完整文件下载地址

    计算器

    展开全文
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    支持、或、非、异或、移位(循环、逻辑、算术),直接读写二进制位,指定位段读、写、置1、清0、反转。 二进制数据表达方式多样,数据可以K、M、G等单位为后缀。 支持类C语言库函数调用。 结果可以各种进制、各种...
  • 生活中我们常常采用的是十进制,但计算机却习惯于二进制数。为了避免面对繁杂的01串,展现给程序猿操作的常常是十六进制数。 一.十进制十六进制、二进制数的快速转换 常见的进制转换方法是除二取余法,从下往上...

    生活中我们常常采用的是十进制,但计算机却习惯于二进制数。为了避免面对繁杂的01串,展现给程序猿操作的常常是十六进制数。

    一.十进制数与十六进制、二进制数的快速转换

    常见的进制转换方法是除二取余法,从下往上取余数。这里记录另外一种快速实现进制转换的方法:
    以十进制转二进制为例,例如80转二进制
    在这里插入图片描述
    80可以分为64+16,那么二进制数轴上64和16上面是1,其余位补0
    计算器验证:
    在这里插入图片描述
    再以70为例
    在这里插入图片描述
    同样的,十进制转十六进制也是一样的道理。

    二.十六进制与二进制之间的快速转换

    十六进制与二进制之间存在特殊的关系:二进制数的四位相当于十六进制数的一位。因此,我们可以利用这一特点对其进行快速转换,以十六进制数8F为例
    在这里插入图片描述
    将每一位上的数字都看作十进制数,分别化为四位的二进制数,最后组合结果得出答案。
    计算器验证:
    在这里插入图片描述

    展开全文
  • 十进制加减法计算器单片机设计十进制加减法计算器单片机设计一、设计目的通过课程设计使学生更进一步掌握单片机原理应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合。通过查阅资料,了解所...

    十进制加减法计算器单片机设计

    十进制加减法计算器单片机设计

    一、设计目的

    通过课程设计使学生更进一步掌握单片机原理与应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合。通过查阅资料,了解所学知识的应用情况。

    二、课程设计要求

    设计十进制加减法计算器。要求能(不同时)显示3位输入和4位输出。

    要求程序实现功能

    (1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果。

    (2)计算器复位功能:DEL均为清零重启,任何时候按下DEL中一个将重新开始。

    三、硬件设计

    现实生活中人们熟知的计算器,其功能主要如下:(1)键盘输入;(2)数值显示;(3)加、减运算(此次只要求加减);(4)对错误的控制及提示。

    此次计算器设计的最终结果是使其工作流程为:开机不显示,等待键入数值,键入三个数字,通过LCD显示出来,当键入+、-运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入三个数字将显示键入的数值,按等号就会在LCD上输出运算结果。同时考虑到操作中可能出现的错误时,计算器会进行自动控制。

    根据设计要求,选用8098 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。此次设计的系统模块图如下,

    具体设计考虑如下:

    1、单片机工作时电源引脚外接电源,工作电压为5V,同时本次设计通过内部振荡器和时钟发生器产生时钟信号。

    2、8098单片机可寻址的存储器空间为64K空间,其内部仅带有只能用作寄存器的256个字节容量的RAM,所以在此设计过程中,需要外接存储器芯片,我们选用容量足够大的62128存储器芯片。

    本次设计的接口电路采用8255可编程并行I/O芯片,8255A具有通常意义的接口所需要的基本功能,有着很强的适应性,此次设计中它起的作用是将显示器和键盘与单片机连接,通过向其控制寄存器送入控制字,以规定8255的工作方式和实现确定的功能,如本次设计的电路图,8255的A口、C口均工作于输出方式,而B口工作于输入方式。

    存储器芯片和8255芯片各都需要通过一个锁存器74LS373芯片和单片机连接,锁存器的作用是锁存单片机P3口送出的低8位地址码。

    5、由于要设计的是简单的计算器,可以进行加减运算,对数字的大小范围要求不高,故我们采用可以进行三位数字的运算,选用4片七段共阴极LED显示数据和结果。

    6、键盘共设置16个键,为4×4分布,其中数字键从第四排左起0~9共十个,接着是加号键、减号键、等号键和三个清除键,所对应的键值分别是A(+)、B(—)、C(=)、和D、E、F(清除键)。

    键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。

    本次设计读取键值采用按键扫描程序的方法,思路是对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。

    本次的电路设计在附图上。

    软件设计

    汇编语言 本次设计是由硬件电路和软件编程相结合,虽然我们以前学过C语言,而且觉得这次设计用C语言会更加方便,灵活,但是汇编语言特别适合于实时控制系统这样的应用场合,作为学电气工程及其自动化专业的学生,我们学习单片机的主要目的是将单片机用于检测和控制领域,所以,选择用汇编语言进行本次设计将有助于提高我们的专业知识。

    软件设计思路主要从以下几个方面考虑:

    在主程序中先设置8255的工作方式,初始化对需要存数值和标志位的存储单元清零,并且位选不选中任何数码管,段选为#00H,即使4个数码管初始状态无显示。

    进入键盘扫描程序,先对最低行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描上一行。当扫描到有键按下,可以通过行首键值和列编号值之和来读取此按键的键值,不管有没有按键,扫描一次返回主程序,进入键值处理程序中。

    若没有按键,则进入键值处理程序中,相当于执行了一条空指令,同样进入显示程序中由于没有按键也相当于执行了一条空指令,所以在没有按键的情况下,主程序的循环相当于扫描程序的不停循环,一直等到有按键出现。

    若在扫描程序中查到按键,则可以读出键值,在键值处理程序中,首先通过FL检查这一次的按键是第几次按键,已检查此次按键操作有没有存在错误。若有错误,则直接返回主程序

    展开全文
  • 在科学记数法中,一个数被写成一个110之间的实数一个10的n次幂的积 782300=7.823×105 0.00012=1.2×10−4 10000=1×104 在电脑或计算器中一般用E或e(英语Exponential)来表示10的幂: 7.823E5=...

    科学记数法:

    在科学记数法中,一个数被写成一个1与10之间的实数与一个10的n次幂的积
        782300=7.823×105
        0.00012=1.2×10−4
        10000=1×104

    在电脑或计算器中一般用E或e(英语Exponential)来表示10的幂:

        7.823E5=782300
        1.2e−4=0.00012


    ======================================================================

    从小数点左边开始算,依次列为第0、1、2……位

    从小数点右边开始算,依次列为第-1、-2、-3...位
    第n位的数(0或1)乘以2的n次方
    得到的结果相加就是答案。
    如0.111 = 0*2^0+1*2^(-1)+1*2^(-2)+1*2^(-3)

    0.11011 = 0*2^0+1*2^(-1)+1*2^(-2)+0*2^(-3)+1*2^(-4)+1*2^(-5)

    ==================================================================

    十进制小数→→→→→二进制小数 方法:“乘2取整”

    对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
    如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
    如:0.25的二进制
    0.25*2=0.5 取整是0
    0.5*2=1.0    取整是1
    即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

    0.8125的二进制

    0.8125*2=1.625   取整是1

    0.625*2=1.25     取整是1

    0.25*2=0.5       取整是0

    0.5*2=1.0        取整是1

    即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

     

    十进制小数→→→→→八进制小数 方法:“乘8取整”

    0.71875)10 =(0.56)8

     

    0.71875*8=5.75 取整5

    0.75*8=6.0      取整6
    即0.56

    十进制小数→→→→→十六进制小数方法:“乘16取整”例如:

    (0.142578125)10=(0.248)16

     

    0.142578125*16=2.28125 取整2

    0.28125*16=4.5          取整4

    0.5*16=8.0              取整8

    即0.248

     

    非十进制数之间的转换

    (1)二进制数与八进制数之间的转换

    转换方法是:以小数点为界,分别向左右每位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:

    (423。45)8=(100 010 011.100 101)2

    (1001001.1101)2=(001 001 001.110 100)2=(111.64)8

    (2)二进制与十六进制转换

    转换方法:以小数点为界,分别向左右每位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:

    (ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2

    (101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B。68)16

    转载于:https://www.cnblogs.com/Acg-Check/p/4268222.html

    展开全文
  • 在科学记数法中,一个数被写成一个110之间的实数一个10的n次幂的积  782300=7.823×105  0.00012=1.2×10−4  10000=1×104 在电脑或计算器中一般用E或e(英语Exponential)来表示10的幂:  7.823...
  • 使用VB编写的进制转换器,支持32位位宽...1. 十进制 十六进制 二进制 互转 2. 左移 右移操作 (新增功能) 3. 连续地操作, 或操作, 异或操作 (新增功能) 4. 统计结果数值中1的个数用辅助测试奇偶校验 (新增功能)
  • 计算器中,十进制写入-1然后选择二进制,发现变成了11111111(后面选择字节)然后再选择十六进制,发现变成了FF然后再选择十进制,变成了255. 当初我们的十进制数是-1,现在经过一系列的变换,反而成了255. 所有...
  • 实现算术加、减、乘、除等基本运算; 实现三角函数的运算、对数运算、指数运算、阶乘等科学运算;...能实现基础进制转换(二进制、八进制、十进制、十六进制); 实现计算表达式及结果的保存,便于用户检查计算结果;
  • JAVA综合程序设计分析 一 题目 用java语言编写科学计算器要求完成加减乘除以及基本函数处理还有数的进制转换 二 摘要 本计算器可以进行简单的四则运算加减乘除但仅限于十进制下还可以进行二进制八进制十进制之间的...
  • 使用VB编写的进制转换器,支持32位...1. 十进制 十六进制 二进制 互转 2. 左移 右移操作 3. 连续地操作, 或操作, 异或操作 4. 统计结果数值中1的个数用辅助测试奇偶校验 6. 输入格式限制(正则表达式)(新增)
  • 求余,例如一个十进制17,求二进制 (第一次)17/2 = 8 --------余数1 (第二次)8/2 = 4 ---------余数0 (第三次)4/2 = 2----------余数0 (第四次)2/2 = 1----------余数0 (第五次)1/2 = 0 ----------余数1...
  • PAGE 15十进制加减法计算器单片机设计一、设计目的通过课程设计使学生更进一步掌握单片机原理应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合。通过查阅资料,了解所学知识的应用情况。...
  • 定义进制与计算

    2020-08-12 16:17:15
    let a = 0b110 定义二进制数字 0b 开头 let a = 0100 定义八进制数字 0开头 let a = 110 定义十进制数字 正常数字 let a = 0x21 定义十六进制 0x 开始 //十进制 0 1 2 3 4 5 6 7 8 9 //八进制 0 1 2 3 4 5 6 7 /...
  • 1.1 十进制二进制 除2取余法,从下到上取数 1.2 二进制十进制 1100=0×2^0^+0×2^1^+1×2^2^+1×2^3^ 电脑计算器HEX16进制,DEC10进制,OCT8进制,BIN2进制 计算机存储单元 位(bit):一个数字0或者1,代表...
  • 进制转换工具

    2012-10-16 11:07:56
    子网划分辅助:即IP地址十进制与二进制的相互转换,以及二进制的与、或、取反操作 附加工具: .ASCII表:0-127的ASCII表,以2、8、10、16及HTML分别表示 .简化计算器:四则运算、乘方、开方、阶乘。大部分功能支持...
  • toBin:输入十进制,输出二进制 toDec:$输入十六进制,输出十进制 toDec:b输入二进制,输出十进制 数学公式: mod:AmodB(得余数。输入A、B为十进 制,输出十进制) div:AdivB(A整除B,得整数。输入A、 B为...
  • 大家都知道,计算机底层计算采用的是二进制,计算机的数据存储也是采用二进制,在网络上,设备设备之间的通信,最终...比如当我们使用电脑上的计算器计算 98 + 56 时,计算机是先把十进制的 98 和 56 转换成二进...
  • ASCII及十六进制转换工具《建》

    热门讨论 2010-09-11 10:39:41
    IP二进制十进制:即把上面得到的二进制结果重新转换为十进制方式。 常见问题: 1.问:“进制转换”“字符转换”都具有转为十六进制的操作,有何不同? 答:“进制转换”只能转换数值型,而“字符转换”是把该...
  • 计算器源代码

    2018-02-06 16:16:03
    通过stc51单片机实现计算器功能,其包括十进制加减乘除运算以及十六进制与二进制的互相转换
  • 当这个2^k进制数转化为2进制时,原来的每一位(可以相对于十进制中的每一位来理解)都对应了二进制数中长为k的一个区段。 举个栗子,对于一个16(2^4)进制的数 ABCD (即 10 11 12 13) 打开windows自带的计算器...
  • 实验内容 使用窗体控件来制作一个简易计算器要能够正确的实现加减乘除等相关功能并且能优化字符串与整型浮点型之间的关系使之输出整数结果末尾不带有零并且进行一些其他优化如无限小数以及二进制与十
  • Python科学计算器

    2020-08-16 17:12:59
    实现十进制与二进制、八进制、十六进制的转换;实现千米与英里、纳米、光年的转换;实现摄氏度与华氏度、开氏度、兰氏度的转换。 7、更多信息,请阅读https://blog.csdn.net/qsgctysj/article/details/108024541
  • 计算器(语音).rar

    2020-04-09 09:49:11
    计算器(语音),比电脑自带的还强大,支持win7 win10系统。 1、真实的计算器界面。真人发音 2、绿色软件,不需安装,一个文件集全部功能于一身,不占用系统资源 3、中文语音提示 4、键盘鼠标操作,操作...二进制
  • linux下的简单计算器bc

    2014-11-06 16:05:14
    能转换的进制包括十六进制、十进制、八进制、二进制等。可以使用的运算符号包括(+)加法、(-)减法、(*)乘法、(/)除法、(^)指数、(%)余数 参数 -h,--help 帮助 -i,--interactive 强制交互模式 ...
  • 可以做幂运算,根号运算,十进制与二进制互转,16进制与十进制互转 namespace WindowsFormsApplication15 { public partial class 祥哥计算器 : Form { public 祥哥计算器() { InitializeComponent();...
  • 减,乘,除基本四则运算功能、能够实现二进制,八进制,十进制,十六进制转换、具有运算优先级别,包括运算符号的优先级判断,实现基于括号的优先级控制、具有科学函数计算功能,包括三角函数(具有角度弧度的切换...
  • 显示屏数字可随时转换为下列形式进行计算:十六进制、十进制、八进制、二进制、人民币中文大写形式、人民币数字形式。以上各种转换计算结果可选择是否自动存入WINDOWS剪贴板,并可自动输出在其它程序窗口的当前...
  • Reversers Calculator可以在英特尔操作码目录下使用所有的逻辑和科学运行,并可以将16进制转换为二进制十进制和八进制,能进行十六进制的或运行,可进行算术逻辑左移右移及取反取及字节交换计算。。它是你用于...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

二进制与十进制计算器