前言

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

界面效果图

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);elseresult = 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);elseresult = 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);elseresult = 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;}}
}

完整文件下载地址

计算器

C#开发技术 计算器(二进制、八进制、十进制)相关推荐

  1. 二进制 八进制 十进制 十六进制

    2->8:从个位开始把二进制数三个一组分组,然后每组分别换成8进制, 例:11,101,100 就是分组后的结果 11->3 101->5 100->4 所以结果是354 8- ...

  2. c语言实现二进制八进制十进制和十六进制的相互转化

    c语言实现二进制八进制十进制和十六进制的相互转化 十进制转其他进制 (该程序以十转二为例) #include<stdio.h> void change(int n)//利用递归将每次的余数 ...

  3. python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制

    全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...

  4. 二进制八进制十进制十六进制及原码反码补码

    1.进制的介绍 定义:进位制,人们规定的一种进位方式:表示某一位置上的数,运算时是逢X进一位. 十进制是逢十进一:二进制是逢二进一,八进制是逢八进一: 常见进制:二进制,八进制,十进制,十六进制: 学 ...

  5. 二进制 八进制 十进制 十六进制 之间进制转换(图解篇)

    一.本文所涉及的内容(Contents)                      目录 一.本文所涉及的内容(Contents) 二.背景(Contexts) 三.进制转换算法(Convert) ( ...

  6. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

  7. 【笔记】二进制八进制十进制十六进制互转详细教程和范例

    最近复习之前的笔记基础.又把进制转换理解了一遍.放在这里以后备查.同时作为分享. 二进制转换八进制十进制十六进制 例: 11010 二进制转换八进制 需要2进制数字为每3位分组的十进制数,不足3位的倍 ...

  8. 二进制 八进制 十进制 十六进制的相互转换(精简总结)

    之前看到的都是铺垫这术语那术语的,看了半天,还不知道怎么处理.这里就根据各种文章和自己的理解总结一小下下,  不一定准确,省略一些概念等繁琐的陈述,直接上结论 1.二进制转八进制:以小数点为分界线,各 ...

  9. Java 二进制,八进制,十进制,十六进制

    学而时习之,温故而知新 二进制特征: 1 : 有2个数字组合,"0" 和"1" 2 : 运算时逢2进1 例如 101010 八进制的特点: 1: 有 8个数组组 ...

最新文章

  1. 如何在面试中介绍自己的项目经验,90%的人都做错了!
  2. webapi同一个Controller多个函数
  3. Java:数列排序 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
  4. 网上开店失败的7大原因
  5. JAXB众所周知的秘密
  6. 01_2_数字基带传输及其频谱特性
  7. freecodecamp_freeCodeCamp的新编码课程现已上线,其中包含1,400个编码课程和6个开发人员认证
  8. python的编程模式有哪两种_python程序的两种运行方式是什么
  9. LeetCode 633 平方数之和
  10. Linux 硬中断和软中断
  11. mysql乱码加的一段代码_mysql乱码的解决方法
  12. 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
  13. 锐捷网络linux如何认证上网,如何在Linux里面进行锐捷认证上网
  14. 从零开始学Android应用安全测试
  15. 百数巡检领域系统能力展示
  16. provisional headers are shown
  17. PPT学习整理(八)PPT图片技巧
  18. LA5713 秦始皇修路 (mst)
  19. Android7工程模式,安卓手机的“工程模式”是什么?
  20. linux统计文本每列的最大字符,Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式...

热门文章

  1. 使用mmap实现文件映射
  2. 教程 2 || 10分钟成为简笔画达人,然后......
  3. 计蒜客python刷题笔记
  4. 读书总结:Open Life
  5. 《MongoDB入门教程》第03篇 MongoDB基本概念
  6. 财务管理数字化: 销售收入分析
  7. 关于I2C设备地址(7位)的误解
  8. C++实现别踩白块儿(双人版)
  9. 第25章 MySQL ALTER命令教程
  10. java性别分类汇总,excel表格数据男女分类汇总-在Excel中,对数据清单进行“按性别分类汇总出男女......