一、进制转换(字符串的操作)
在进制转换的过程中,操作的数字可能大于int的边界,所以我们需要使用字符串进行进制转换的操作。
string divide(string s,int x){
int re=0;
for(int i=0;i<s.length();i++){
int current = re*10+s[i]-'0';
s[i]=current/x+'0';
re=current%x;//若i位置的取余不为0,那么就在这个余数乘10的基础上加上后一位数字。
}
int pos=0;
while(s[pos]=='0'){//舍弃前面多余的0;
pos++;
}
return s.substr(pos);//将第一个不为0的字符串复制给s,并返回。
}
二、M进制转换为N进制
由于进制大于10,就需要用字符串表示,所以难点在于字符转整数,整数转int。
这个可以表示10进制转换成其他进制,或者其他进制之间的转换。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
char InttoChar(int x){
if(x<10){
return x+'0';
}else{
return x-10+'a';
}
}
int ChartoInt(char c){
if(c>='0'&&c<='9'){
return c-'0';
}el