任意十进制转任意进制

输入一个十进制数N,将它转换成R进制数输出。
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <string.h>
void tohex (int b,int n)
{
char hextable[]="0123456789ABCDEF";
char hex[1600];//储存转换后的zhi
int a=0;
memset(hex,0,sizeof(hex));//初始化
char temphex[16];//中间变量
int i=0,j,m;
if(b<0)
{b=b*-1;
a=1;
}
if(b==0){
printf("0");
return;}
while(b)
{
temphex[i++]=hextable[b%n];
b/=n;
}
m =i-1;//储存转换后的数的长度
for(j=0;j<i;j++)//逆序
{
hex[j]=temphex[m--];
}
if(a==1)
printf("-%s\n",hex);
else
printf("%s\n",hex);

}

int main()
{
int b;// b储存待转换的值
int n;//n储存待转换进制的值
while(scanf("%d%d",&b,&n)!=EOF)
{
tohex(b,n);
}
return 0;
}

坚持技术分享,如果帮助到了您,您的支持将鼓励我继续创作!