10进制--》M
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
//超过36进制 要看题目字符表示 如100进制 1000进制
char IntToChar(int target){
if(target < 10) return target + '0';
else return target - 10 + 'A';
}
void Convert(int n,int x){
vector<char> answer;
if(n==0) answer.push_back('0');
else{
while(n!=0){
answer.push_back(IntToChar(n % x));
n /= x;
}
}
for(int i=answer.size() - 1;i>=0;--i) printf("%c",answer[i]);
printf("\n");
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
Convert(n,8);
}
return 0;
}
M--》10进制
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
using namespace std;
int CharToInt(char target){
if(target >= '0' && target <= '9') return target - '0';
else return target - 'A' + 10;
}
void Convert(string str,int x){
int number = 0;
for(int i=0;i<str.size();++i){
number *= x;
number += CharToInt(str[i]);
}
printf("%d\n",number);
}
int main() {
string str;
while(cin >> str){
str = str.substr(2);
Convert(str,16);
}
return 0;
}
第三种情况 M-->N
两者融合 M-->10-->N 此处暂略