如果要学进制转换可以参考这篇通俗易懂(杭电2031)

来源:互联网 发布:数据库系统概论萨师煊 编辑:程序博客网 时间:2024/04/28 04:55
#include<stdio.h>
intmain()
{
    charku[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    intzh[32],i=0,w,j;
    longint b,y;
    printf("请输入一个十进制数,我能帮您把它转换成2~16任意进制数:\n");
    scanf("%d",&y);
    b=y;
    printf("请输入要转换为的进制:");
    scanf("%d",&w);
    printf("\n");
    do
    {
        zh[i]=y%w;
        i++;
        y=y/w;
    }
    while(y!=0);
    printf("把十进制的%ld转换为%d进制:",b,w);
    for(i--;i>=0;i--)
    {
        j=zh[i];
        printf("%c",ku[j]);
    }
    printf("\n");
    return0;
}
题目

进制转换

输入一个十进制数N,将它转换成R进制数输出。
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
#include<stdio.h>
int main()
{
int i=0,j,a[1000],n,r;
char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(~scanf("%d%d",&n,&r))
{
i=0;
if(n>0)
{
do
{
a[i]=n%r;
i++;
n=n/r;
    }while(n!=0);
    for(i--;i>=0;i--)
    {
    j=a[i];
    printf("%c",b[j]);
    }printf("\n");
   }
   else
   {
    n=-n;
    do
{
a[i]=n%r;
i++;
n=n/r;
    }while(n!=0);
    printf("-");
    for(i--;i>=0;i--)
    {
    j=a[i];
    printf("%c",b[j]);
    }printf("\n");
   }

return 0;
}
0 0