一 问题描述
将一种数制转化为另外一种数制
二设计思路
分别设置不同部分对应不同的数制转换通过定义不同的自定义函数其中运用字符数组储存。
三程序流程图
四伪代码实现
#include<iostream>
using namespace std;
#define MAXCHAR 101
int char_to_num(char ch);
char num_to_char(int num);
long source_to_decimal(char temp[],int source);
int decimal_to_object(char temp[],long decimal_num,int object);
void output(char temp[],int length);
int main(){
int source,object,length;
long decimal_num;
char temp[MAXCHAR];
int flag=1;
while(flag){
cout<<"转换前的数是:";
cin>>temp;
cout<<"转换前的数制是:";
cin>>source;
cout<<"转换后的数制是:";
cin>>object;
cout<<"转换后的数是:";
decimal_num=source_to_decimal(temp,source);
length=decimal_to_object(temp,decimal_num,object);
output(temp,length);
cout<<"继续输入1,否则输入0:"<<endl;
cin>>flag;
}
}
int char_to_num(char ch){
if(ch>'0'&&ch<='9'){
return ch-'0';
}
else{
return ch-'A'+10;
}
}
char num_to_char(int num){
if(num>=0&&num<=9){
return (char)('0'+num-0);}
else{
return (char)('A'+num-10);
}
}
long source_to_decimal(char temp[],int source){
long decimal_num=0;
int length;
int i;
for(i=0;temp[i]!='\0';i++){
length=i;
}
for(i=0;i<=length-1;i++){
decimal_num=(decimal_num*source)+char_to_num(temp[i]);
return decimal_num;
}
}
int decimal_to_object(char temp[],long decimal_num,int object){
int i=0;
while(decimal_num){
temp[i]=num_to_char(decimal_num%object);
decimal_num=decimal_num/object;
i++;
}
temp[i]='\0';
return i;
}
void output(char temp[],int length){
int i;
for(i=length-1;i>=0;i--){
cout<<temp[i]<<endl;
}
}
五代码实现