当前位置:首页 / 文章测试 / C++任意进制间转换

C++任意进制间转换

开始打字练习

#include<iostream>

#include<cmath>

using namespace std;

int getNum(char c)

{

if(c >= '0' && c <= '9')

return c - '0';

else if(c >= 'a' && c <= 'z')

return c - 'a' + 10;

}

char getChar(int t)

{

if(t < 10)

return '0' + t;

else

return 'a' + t - 10;

}

void out(int n, int b) // 十进制数n转为b进制输出

{

if(n == 0) return;

out(n / b, b);

cout << getChar(n % b);

}

void turn(string s, int a, int b) // a进制数s转为b进制,先转为十进制

{

int n = 0;

for(int i = s.length() - 1; i >= 0; i--)

n += getNum(s[i]) * pow(a, s.length() - 1 - i);

out(n, b);

}

int main()

{

int a, b;

string s;

cin >> a >> b >> s;

turn(s, a, b);

return 0;

}

声明:以上文章均为用户自行发布,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。