多功能进制转换器设计

这两天花时间用C语言编写了一个多功能进制转换器,可以实现十进制数到二进制数的转换、十进制数到八进制数的转换、十进制数到十六进制数的转换、二进制数到八进制数的转换、二进制数到十进制数的转换、二进制数到十六进制数的转换、以及任意进制数到十进制数的转换和十进制数对任意进制数的转换。基本涵盖了程序员日常所设计用到的所有进制转换类型。运行窗口颜色选择了比较护眼又好看的水蓝色。废话不多说,直接上代码。

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>void ten_two();//十进制 → 二进制
void ten_eight();//十进制 → 八进制
void ten_sixteen();//十进制 → 十六进制
void two_eight();//二进制 → 八进制
void two_ten();//二进制 → 十进制
void two_sixteen();//二进制 → 十六进制
void at_will_ten();//任意进制 → 十进制
void ten_at_will();//十进制 → 任意进制 void STarting_up();
int main()
{STarting_up();
}
void STarting_up()  {system("cls");int n;do {system("color B1");printf("\t\t\t\t\t  **********************************  \n");printf("\t\t\t\t\t  *           *                    *  \n");printf("\t\t\t\t\t  *   欢迎    *       多功能       *  \n"); printf("\t\t\t\t\t  *   使用    *     进制转换器     *  \n");printf("\t\t\t\t\t  *           *                    *  \n");printf("\t\t\t\t\t  **********************************\n\n");printf("\t\t\t\t\t  @各进制转换功能内输入0返回到此界面\n\n");printf("\t1.十进制 → 二进制\n\n");printf("\t2.十进制 → 八进制\n\n");printf("\t3.十进制 → 十六进制\n\n");printf("\t4.二进制 → 八进制\n\n");printf("\t5.二进制 → 十进制\n\n");printf("\t6.二进制 → 十六进制\n\n");printf("\t7.任意进制 → 十进制\n\n");printf("\t8.十进制 → 任意进制\n\n");printf("请选择功能:");scanf("%d",&n);if(n==0)break;switch(n){case 1:ten_two();break;case 2:ten_eight(); break;case 3:ten_sixteen();break;case 4:two_eight();break;case 5:two_ten();break;case 6:two_sixteen();break;    case 7:at_will_ten();break;case 8:ten_at_will();break;  default:printf("输入有误,请在1-8之间选择\n");}}while(1);}
void ten_two()
{system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *       十进制 → 二进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){   int num, p[100],i=0,count;printf("请输入一个十进制数:");scanf("%d",&num);if(num==0)STarting_up(); for(count=0;;count++){if(num==0)break;p[count]=num%2;num=num/2;i++;}printf("转换为二进制:");for(count=i-1;count>=0;count--)printf("%d",p[count]);printf("\n");}
}
void ten_eight()
{system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *       十进制 → 八进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int num, p[100],i=0,count;printf("请输入一个十进制数:");scanf("%d",&num);if(num==0)STarting_up();    for(count=0;;count++){if(num==0)break;p[count]=num%8;num=num/8;i++;}printf("转换为八进制:");for(count=i-1;count>=0;count--)printf("%d",p[count]);printf("\n");}
}
void ten_sixteen()
{system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *     十进制 → 十六进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int num, p[100],i=0,count;printf("请输入一个十进制数:");scanf("%d",&num);if(num==0)STarting_up();for(count=0;;count++){if(num==0)break;p[count]=num%16;num=num/16;i++;switch(p[count]){case 10:p[count]='A';break;case 11:p[count]='B';break;case 12:p[count]='C';break;case 13:p[count]='D';break;case 14:p[count]='E';break;case 15:p[count]='F';break;}}printf("转换为十六进制:");for(count=i-1;count>=0;count--){if(p[count]<10)printf("%d",p[count]);if(p[count]>=10)printf("%c",p[count]);}printf("\n");}
}
void two_eight(){system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *       二进制 → 八进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int x; printf("请输入一个二进制数:");scanf("%d",&x);if(x==0)STarting_up();int y=0,product=1;while(x!=0){y=y+(x%10)*product;x=x/10;product=product*2;}int num, p[100],i=0,count;num=y;for(count=0;;count++){if(num==0)break;p[count]=num%8;num=num/8;i++;}printf("转换为八进制:");for(count=i-1;count>=0;count--)printf("%d",p[count]);printf("\n");}
}
void two_ten(){system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *       二进制 → 十进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int x; printf("请输入一个二进制数:");scanf("%d",&x);if(x==0)STarting_up();int y=0,product=1;while(x!=0){y=y+(x%10)*product;x=x/10;product=product*2;}printf("转换为十进制:%d\n",y);}
}
void two_sixteen(){system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *     二进制 → 十六进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int x; printf("请输入一个二进制数:");scanf("%d",&x);if(x==0)STarting_up();int y=0,product=1;while(x!=0){y=y+(x%10)*product;x=x/10;product=product*2;}int num, p[100],i=0,count;num=y;for(count=0;;count++){if(num==0)break;p[count]=num%16;num=num/16;i++;switch(p[count]){case 10:p[count]='A';break;case 11:p[count]='B';break;case 12:p[count]='C';break;case 13:p[count]='D';break;case 14:p[count]='E';break;case 15:p[count]='F';break;}}printf("转换为十六进制:");for(count=i-1;count>=0;count--){if(p[count]<10)printf("%d",p[count]);if(p[count]>=10)printf("%c",p[count]);}printf("\n");}
}
void at_will_ten(){//任意进制转十进制 system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *     任意进制 → 十进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int x,p;   //x输入数字  p该数的进制数printf("请输入一个任意一个数:"); scanf("%d",&x);if(x==0)STarting_up();printf("请描述该数的进制数:"); scanf("%d",&p);if(x==0)STarting_up();int y=0,product=1;while(x!=0){y=y+(x%10)*product;x=x/10;product=product*p;}printf("转换后的十进数为:%d\n",y);}
}
void ten_at_will(){//十进制转任意进制 system("cls"); printf("\t\t\t\t\t  ***********************************  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  *     十进制 → 任意进制转换器    *  \n");printf("\t\t\t\t\t  *                                 *  \n");printf("\t\t\t\t\t  ***********************************\n\n");while(1){int x,p; //x为十进制数,p为目标进制大小 printf("请输入一个任意一个数:"); scanf("%d",&x);if(x==0)STarting_up();printf("请描述需要该数转换成的进制数:"); scanf("%d",&p);if(x==0)STarting_up();int a[100]; //存放余数 int count=0;do{a[count++]=x%p;x=x/p;}while(x!=0);//当商不为0时进行循环       for(int i=count-1;i>=0;i--){printf("%d",a[i]);}printf("\n");}
} 

开机主页面:

十进制数 → 二进制数转换器页面

十进制数 → 八进制数转换器页面

十进制数 → 十六进制数转换器页面

二进制数 → 八进制数转换器页面

二进制数 → 十进制数转换器页面

二进制数 → 十六进制数转换器页面

任意进制数 → 十进制数转换器页面

十进制数 → 任意进制数转换器页面

越努力越幸运!
加油,奥力给!!!

C语言编程>第二十八周 ① 多功能进制转换器设计相关推荐

  1. 左耳听风 第二十八周

    左耳听风 第二十八周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  2. JAVA 基础 / 第二十八课:接口与继承 / 如何设计JAVA的接口?

    2018-03-19 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击.这时候,就可以使用接口来实现这个效果.  接口就像是一种约定,我们约定某些英雄是物理系英雄,那么 ...

  3. C语言编程>第二十二周 ④ 从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组

    例题:从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组中. 例如,输入 " ...

  4. C语言编程>第二十二周 ⑥ 请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中。

    例题:请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中.字符串s从键盘输入,其长度作为参数传入fun函数. 例如,输入 " ...

  5. C语言编程>第二十六周 ⑥ 请补充fun函数,该函数的功能是:按 “0”到 “9”统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。

    例题:请补充fun函数,该函数的功能是:按 "0"到 "9"统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中.注意:不能使用字符串库函数. ...

  6. C语言编程>第二十二周 ③ 下列给定的程序中,函数fun的功能是根据整型形参n,计算如下公式的值:

    例题:下列给定的程序中,函数fun的功能是根据整型形参n,计算如下公式的值: 例如,若n=1000,则应输出0.000155. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. 代码 ...

  7. C语言编程>第二十六周 ① 函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

    例题:函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换.形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动. 例如,若a所指数组中的数据依次为:11 22 33 ...

  8. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。

    例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...

  9. C语言编程>第十八周 ⑧ 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

    例题:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列. 注意:请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句. 代码如 ...

最新文章

  1. python接口测试声音,python接口测试-登录
  2. iqooneo5支持鸿蒙系统吗,iqooneo5活力版有双卡双待吗_iqooneo5活力版支持5g吗
  3. MDT跨网段UEFI部署系统
  4. jdbc连接Oracle/MySQL数据库进行批量导入操作,如何提高效率???
  5. mac环境mongodb安装与配置
  6. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(5)
  7. 李洋疯狂C语言之求素数的方法
  8. 在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...
  9. php 观察者模式怎么用,php怎么实现观察者模式
  10. 阿里专家常昊:新人如何上手项目管理?
  11. [ACM_NYOJ_15]括号匹配(二)
  12. High Availability--keepalived详解篇(三)之keepalive配置实例-http
  13. easyMule-VeryCD-src---VS2010调试笔记
  14. docker视频教程 假装听听 应该还行
  15. 机器学习丨如何理解正定矩阵和半正定矩阵
  16. 金额小写转大写 java_JAVA 小写金额转换大写金额
  17. 饥荒控制台输入没用_《饥荒》控制台正确使用教程 如何使用控制台
  18. python红楼梦作者_用 Python 分析《红楼梦》,后四十回是曹雪芹所写吗?(开源)...
  19. 计算机屏幕节省电,电脑显示器如何省电
  20. Element UI学习记录之布局

热门文章

  1. linux卸载 bind,Linux CentOS中 BT下载客户端 安装及卸载方法 Transmission
  2. c语言标准输入输出ppt,C语言版输入输出.ppt
  3. I - 最大公约数GCD
  4. bt5上的一些更新源
  5. 计算机会计结合岗位职责,会计电算化岗位职责
  6. 【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持
  7. BIOS设置中还原coms设定的操作方法
  8. 图与网络模型及方法(二)
  9. MAYA影视动漫高级模型制作全解析出_完整版PDF电子书下载 带索引书签目录高清版...
  10. RTL8723BU WiFi—蓝牙 模块移植