1.很久没有更新博客了 这次想要记录分享一下在这段学习过程中实现的进制转换器
c语言代码 里面运用到了一些数据结构和递归的相关知识 也算是一个简单的综合运用吧
2.核心思想是将一切进制转换为10进制 再由十进制转换为其他进制数据
3.思路和关键步骤的含义再源代码中标注的很详细 这里不再过述 代码如下:
Test.c
#include"SeqList.h"
void menu(){
printf("*****************************\n");
printf("******1.输入目标数字的位数***\n");
printf("******2.输入目标数字*********\n");
printf("******3.该目标数字的进制*****\n");
printf("******4.输入需要转换的进制***\n");
printf("******5.开始转换*************\n");
printf("******6.转换其他数字*********\n");
printf("******0.退出*****************\n");
printf("===========================================\n");
printf("\n");
}
int main(){
int input = 0;//控制菜单选项
int bits = 0; //目标数字的位数
SeqList Num ; //存储目标数字
int Num_10 = 0; //存放目标数字转化为的十进制数
int System = 0; //目标数字的进制
int SystemNum = 0; //目的进制
SeqList AimNum; //存放目的数字
int i = 0; //控制循环
char tmp = '0'; //临时保存输入数字的每一位数字 使其入顺序表
SeqListInit(&Num);
SeqListInit(&AimNum);
do{
menu();
scanf("%d", &input);
switch (input)
{
case 1: //输入目标数字的位数
printf("请输入目标数字位数吧:");
scanf("%d", &bits);
break;
case 2: //输入目标数字
printf("请输入目标数字吧:");//尾插进顺序表 因为输入数字的习惯是从最高开始输入
for (i = 0; i < bits+1; i++){
scanf("%c", &tmp);
SeqListPushBack(&Num, tmp);
}
SeqListPrint(&Num);
break;
case 3: //输入目标数字的进制
printf("请输入目标数字的进制吧:");
scanf("%d", &am