算法步骤:
1、将n进制数转换为10进制;
2、将10进制数转换为m进制;
下面是程序代码(为了模块重用写做两个函数):
#include
#include "math.h"
#include "string.h"
#define NUM_LENGTH 50
char IntToChar[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
// Convert a char to integer ,like: F = 15
int ConvertCharToInt(char ch)
{
switch(ch)
{
case '0':
return 0;
case '1':
return 1;
case '2':
return 2;
case '3':
return 3;
case '4':
return 4;
case '5':
return 5;
case '6':
return 6;
case '7':
return 7;
case '8':
return 8;
case '9':
return 9;
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
default:
return -1;
}
}
// Convert A x-base number to tenbase
int ConvertToTenBase(const char *result, int origBase)
{
int ret, i;
int len = strlen(result);
ret = 0;
for(i = 0; i < len; i++)
{
ret += ConvertCharToInt(result[len - 1 - i]) * pow(origBase, i);
}
return ret;
}
责任编辑:cyth