69,368
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int hexConversion(char *str, char *istr, int x, int n)
{
int sum = 0, lengh = strlen(str);
for (int i = lengh - 1; i >= 0; --i)
for (int j = 0; j < 16; ++j)
if (str[i] == hex[j])
sum += j*pow(x, lengh - i - 1);
int count = 0;
do
{
istr[count] = hex[sum%n];
sum /= n;
++count;
} while (sum != 0);
return count;
}
int main()
{
char str[100], istr[100];
int x, n;
std::cout << "输入数和进制:";
std::cin >> str >> x;
std::cout << "输入转换的进制:";
std::cin >> n;
int count = hexConversion(str, istr, x, n);
std::cout << "结果为:";
for (int i = count - 1; i >= 0; --i)
std::cout << istr[i];
return 0;
}