C代码如下:
#include <stdio.h>
//10进制转radius进制
void trans(int n,int radius,char buf[])
{
int i = 0;
int t,j;
char ch;
while(n)
{
t = n%radius;
if(t >= 10)
buf[i] = 'A' + t-10;
else
buf[i] = '0' + t;
i++;
n/=radius;
}
buf[i] = 0;
//逆序
for (j=0,t=i-1;j<t;j++,t--)
{
ch = buf[j];
buf[j] = buf[t];
buf[t] = ch;
}
}
int main()
{
int n;
char buf[20]={0};
scanf("%d",&n);
trans(n,2,buf);
printf("2进制:%s\n",buf);
trans(n,5,buf);
printf("5进制:%s\n",buf);
trans(n,8,buf);
printf("8进制:%s\n",buf);
trans(n,16,buf);
printf("16进制:%s\n",buf);
return 0;
}
https://www.cnblogs.com/ganquanfu2008/p/3170021.html
#include <iostream>
using namespace std;
void main()
{
int n; //求的十进制数
cout << "请输入一个十进制数" << endl;
cin >> n;
int saveData[1000]; //保存转换后的的位数;
int count = 0; //统计转换后有多少位数
int radix =0 ; //转换的基数比如2表示二进制,8表示8进制...
cout << "输入你需要转换的进制数" << endl;
cin >> radix;
int x;
for (int i =0; n; ++i)
{
x = n % radix;
n = n / radix;
saveData[i] = x;
++count;
}
cout << "转换为" << radix << "进制:" ;
for (int j = count -1; j >= 0; --j)
{
cout << saveData[j];
}
int wait;
cin >> wait;
}