您的位置:首页 > 编程语言 > C语言/C++

任意数制间的转换

2017-03-29 12:13 183 查看
这是在今年的cvte笔试题中做过的一个题目,是将任意的M进制数转换为N进制数。具体代码如下:

#include<stdio.h>
void m2n(int m, char* mNum, int n, char* nNum)
{
int i = 0;
char c, *p = nNum;

//这是一个考察地方,是否能用最少乘法次数。
while (*mNum != '\0')
i = i*m + *mNum++ - '0';

//辗转取余
while (i) {
*p++ = i % n + '0';
i /= n;
}
*p-- = '\0';

//逆置余数序列
while (p > nNum) {
c = *p;
*p-- = *nNum;
*nNum++ = c;
}
}
int main()
{
int m=0,n=0;
char arr1[100];
char arr2[100];
gets(arr1);
m2n(10,arr1,2,arr2);
puts(arr2);
system("pause");
return 0;
}


以下是我运行的结果图:



但是上述代码也存在一定的缺陷就是没有对数制进行检查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 数制转换