您的位置:首页 > 其它

将正整数N转换成m(2-16)进制数

2015-05-31 19:06 381 查看
给出一个正整数N和目标进制,将其转换并且输出

代码如下:

#include <iostream>
using namespace std;
void mTurntoN(int m, int n, char* buf);
int main() {
char buf[100] = { 0 };
cout << "输入要转化的进制:";
int n; cin >> n;
cout << "输入正整数m:";
int m; cin >> m;
mTurntoN(m, n, buf);
//输出
puts(buf);

}

/*
m为正整数,n为目标进制,buf为转换后的数,用字符串表示
*/
void mTurntoN(int m, int n, char* buf) {
static int i = 0;

if (m == 0) {
buf[i] = '0';
buf[i + 1] = '\0';
return;
}
else {
mTurntoN(m / n, n, buf); //递归调用
switch (m%n)
{
case 10:
buf[i] = 'A';
break;
case 11:
buf[i] = 'B';
break;
case 12:
buf[i] = 'C';
break;
case 13:
buf[i] = 'D';
break;
case 14:
buf[i] = 'E';
break;
case 15:
buf[i] = 'F';
break;

default:
buf[i] = m%n + '0';
break;
}
i++;
}

}


输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: