C#开发技术 计算器(二进制、八进制、十进制)
前言
该计算器程序支持二进制、八进制、十进制之间的互相转换,同时也支持二进制、八进制、十进制的计算。但是需要注意的是:程序可能存在着些许错误,请体谅笔者的水平。笔者提供了程序的完整文件,包括程序源代码。
本程序提供了“面向对象”和“面向过程”两种设计思路。
界面效果图
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#开发技术 计算器(二进制、八进制、十进制)相关推荐
- 二进制 八进制 十进制 十六进制
2->8:从个位开始把二进制数三个一组分组,然后每组分别换成8进制, 例:11,101,100 就是分组后的结果 11->3 101->5 100->4 所以结果是354 8- ...
- c语言实现二进制八进制十进制和十六进制的相互转化
c语言实现二进制八进制十进制和十六进制的相互转化 十进制转其他进制 (该程序以十转二为例) #include<stdio.h> void change(int n)//利用递归将每次的余数 ...
- python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制
全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...
- 二进制八进制十进制十六进制及原码反码补码
1.进制的介绍 定义:进位制,人们规定的一种进位方式:表示某一位置上的数,运算时是逢X进一位. 十进制是逢十进一:二进制是逢二进一,八进制是逢八进一: 常见进制:二进制,八进制,十进制,十六进制: 学 ...
- 二进制 八进制 十进制 十六进制 之间进制转换(图解篇)
一.本文所涉及的内容(Contents) 目录 一.本文所涉及的内容(Contents) 二.背景(Contexts) 三.进制转换算法(Convert) ( ...
- 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...
计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...
- 【笔记】二进制八进制十进制十六进制互转详细教程和范例
最近复习之前的笔记基础.又把进制转换理解了一遍.放在这里以后备查.同时作为分享. 二进制转换八进制十进制十六进制 例: 11010 二进制转换八进制 需要2进制数字为每3位分组的十进制数,不足3位的倍 ...
- 二进制 八进制 十进制 十六进制的相互转换(精简总结)
之前看到的都是铺垫这术语那术语的,看了半天,还不知道怎么处理.这里就根据各种文章和自己的理解总结一小下下, 不一定准确,省略一些概念等繁琐的陈述,直接上结论 1.二进制转八进制:以小数点为分界线,各 ...
- Java 二进制,八进制,十进制,十六进制
学而时习之,温故而知新 二进制特征: 1 : 有2个数字组合,"0" 和"1" 2 : 运算时逢2进1 例如 101010 八进制的特点: 1: 有 8个数组组 ...
最新文章
- 如何在面试中介绍自己的项目经验,90%的人都做错了!
- webapi同一个Controller多个函数
- Java:数列排序 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
- 网上开店失败的7大原因
- JAXB众所周知的秘密
- 01_2_数字基带传输及其频谱特性
- freecodecamp_freeCodeCamp的新编码课程现已上线,其中包含1,400个编码课程和6个开发人员认证
- python的编程模式有哪两种_python程序的两种运行方式是什么
- LeetCode 633 平方数之和
- Linux 硬中断和软中断
- mysql乱码加的一段代码_mysql乱码的解决方法
- 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
- 锐捷网络linux如何认证上网,如何在Linux里面进行锐捷认证上网
- 从零开始学Android应用安全测试
- 百数巡检领域系统能力展示
- provisional headers are shown
- PPT学习整理(八)PPT图片技巧
- LA5713 秦始皇修路 (mst)
- Android7工程模式,安卓手机的“工程模式”是什么?
- linux统计文本每列的最大字符,Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式...
热门文章
- 使用mmap实现文件映射
- 教程 2 || 10分钟成为简笔画达人,然后......
- 计蒜客python刷题笔记
- 读书总结:Open Life
- 《MongoDB入门教程》第03篇 MongoDB基本概念
- 财务管理数字化: 销售收入分析
- 关于I2C设备地址(7位)的误解
- C++实现别踩白块儿(双人版)
- 第25章 MySQL ALTER命令教程
- java性别分类汇总,excel表格数据男女分类汇总-在Excel中,对数据清单进行“按性别分类汇总出男女......