C语言编程>第二十八周 ① 多功能进制转换器设计
多功能进制转换器设计
这两天花时间用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语言编程>第二十八周 ① 多功能进制转换器设计相关推荐
- 左耳听风 第二十八周
左耳听风 第二十八周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- JAVA 基础 / 第二十八课:接口与继承 / 如何设计JAVA的接口?
2018-03-19 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击.这时候,就可以使用接口来实现这个效果. 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么 ...
- C语言编程>第二十二周 ④ 从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组
例题:从键盘输入一组小写字母,保存在字符数组str中,请补充fun函数,该函数的功能是:把字符数组str中字符下标为偶数的小写字母转换成对应的大写字母,结果仍保存在原数组中. 例如,输入 " ...
- C语言编程>第二十二周 ⑥ 请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中。
例题:请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中.字符串s从键盘输入,其长度作为参数传入fun函数. 例如,输入 " ...
- C语言编程>第二十六周 ⑥ 请补充fun函数,该函数的功能是:按 “0”到 “9”统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。
例题:请补充fun函数,该函数的功能是:按 "0"到 "9"统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中.注意:不能使用字符串库函数. ...
- C语言编程>第二十二周 ③ 下列给定的程序中,函数fun的功能是根据整型形参n,计算如下公式的值:
例题:下列给定的程序中,函数fun的功能是根据整型形参n,计算如下公式的值: 例如,若n=1000,则应输出0.000155. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. 代码 ...
- C语言编程>第二十六周 ① 函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例题:函数fun的功能是:将形参b所指数组中的前半部分元素的值和后半部分元素的值对换.形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动. 例如,若a所指数组中的数据依次为:11 22 33 ...
- C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。
例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...
- C语言编程>第十八周 ⑧ 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。
例题:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列. 注意:请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句. 代码如 ...
最新文章
- python接口测试声音,python接口测试-登录
- iqooneo5支持鸿蒙系统吗,iqooneo5活力版有双卡双待吗_iqooneo5活力版支持5g吗
- MDT跨网段UEFI部署系统
- jdbc连接Oracle/MySQL数据库进行批量导入操作,如何提高效率???
- mac环境mongodb安装与配置
- [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(5)
- 李洋疯狂C语言之求素数的方法
- 在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...
- php 观察者模式怎么用,php怎么实现观察者模式
- 阿里专家常昊:新人如何上手项目管理?
- [ACM_NYOJ_15]括号匹配(二)
- High Availability--keepalived详解篇(三)之keepalive配置实例-http
- easyMule-VeryCD-src---VS2010调试笔记
- docker视频教程 假装听听 应该还行
- 机器学习丨如何理解正定矩阵和半正定矩阵
- 金额小写转大写 java_JAVA 小写金额转换大写金额
- 饥荒控制台输入没用_《饥荒》控制台正确使用教程 如何使用控制台
- python红楼梦作者_用 Python 分析《红楼梦》,后四十回是曹雪芹所写吗?(开源)...
- 计算机屏幕节省电,电脑显示器如何省电
- Element UI学习记录之布局
热门文章
- linux卸载 bind,Linux CentOS中 BT下载客户端 安装及卸载方法 Transmission
- c语言标准输入输出ppt,C语言版输入输出.ppt
- I - 最大公约数GCD
- bt5上的一些更新源
- 计算机会计结合岗位职责,会计电算化岗位职责
- 【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持
- BIOS设置中还原coms设定的操作方法
- 图与网络模型及方法(二)
- MAYA影视动漫高级模型制作全解析出_完整版PDF电子书下载 带索引书签目录高清版...
- RTL8723BU WiFi—蓝牙 模块移植