编写一个进制转换器
2016-04-15 11:33
176 查看
#include<iostream> #include<stdlib.h> #include<cmath> using namespace std; void BtoD(int B, int &D, int &W)//二转十 { int bit; if (B > 0) { bit = B % 10; D = D + bit*(int)(pow(2, float(W)));//取余,最低位是否是1 B = B / 10; W++;//去掉最低位 BtoD(B, D, W);//二进制码每一位对应权重加1 } } void main() { char bi[255];//二进制数内存 int input;//输出进制数 char type;//输出进制类型 char contin;//标志是否继续进行 int de = 0;//十进制数 int weight = 0;//二进制码最低位权重 do { cout << "请选择输入数的进制类型" << endl; cout << "B-二进制 O-八进制 D-十进制 H-十六进制" << endl; cout << "选择进制为: "; cin >> type; switch (type) { case 'B': cout << "输入的二进制数: ";//二转为十进制 cin >> input; BtoD(input, de, weight); cout << "其八进制数是:" << oct << de << endl; cout << "其十进制数是:" << dec << de << endl; cout << "其十六进制是:" << hex << de << endl; break; case'O': cout << "输入的八进制数: ";//八进制转换为二进制 cin >> oct >> input; cout << "其二进制数是: "; itoa(input, bi, 2); cout << bi << endl; cout << "其十进制数是:" << dec << input << endl; cout << "其十六进制数是:" << hex << input << endl; break; case'D': cout << "输入的十进制数: ";//十进制转换为二进制 cin >> dec >> input; cout << "其二进制数是: "; itoa(input, bi, 2); cout << "其八进制数是: " << oct << input << endl; cout << "其十六进制数是: " << hex << input << endl; break; case'H': cout << "输入的十六进制数: ";//十六进制转换为二进制 cin >> hex >> input; cout << "其二进制数是: "; itoa(input, bi, 2); cout << bi << endl; cout << "其八进制数是: " << oct << input << endl; cout << "其十进制数是: " << dec << input << endl; break; default: cout << "选择进制类型错误\n"; exit(-1); } cout << "是否继续进行转换? Y-是,N-否" << endl; cin >> contin; } while (contin == 'Y'); }
相关文章推荐
- QT下使用MapX控件的问题以及Activex技术
- poj3947最长回文串
- 代码适配Masonry使用的详细介绍
- android MVC 框架的详解
- Node.js + MongoDB + AngularJS - 1
- inputView与inputAccessoryView的使用,即自定义控件的响应视图
- NodeJS、NPM安装配置步骤
- Eclipse常用快捷键,个人总结
- 产品经理技能之BRD的笔记之菜鸟入门
- Google Map API V3开发(2)
- Google Map API V3开发(1)
- php基于jquery的ajax技术传递json数据简单实例
- iOS UITextFieldDelegate 代理方法小结
- Linux命令之TOP
- [从头学数学] 第178节 平面向量
- 用rz sz命令传输文件
- 每天进步一点点——Linux中的文件描述符与打开文件之间的关系
- SQL-Oracle-创建Dblink
- KindEditor图片批量上传
- gcd多线程