10进制转16进制 c语言

#include<stdio.h>
#include<ctype.h>
int main()
{
    int a;
    printf("please input number(10):\n");
    scanf("%d",&a);
    int s,temp;
    int y[10];
    int i=0;
    int count=0;
    if(a<16)
    {
        f(a);
    }
    else
    {
        while(a!=0)
        {
            count=i;
            y[i]=a%16;
            temp=a/16;
            a=temp;
            i++;
        }
        for(i=count; i>=0; i--)
        {
            f(y[i]);
        }
    }
}
void f(int num)
{
    char y1[16]={'0','0','0','0','0','0','0','0','0','0','a','b','c','d','e','f'};
    if(isdigit(num+'0'))
    {
        printf("%d",num);
    }
    else
    {
        printf("%c",y1[num]);
    }
}

这个一共43行,人类要我缩减成10行,,,对滴10行,不能用printf格式输出那种。

人类最讨厌了最讨厌,最讨厌,最讨厌最最讨厌……

#include<stdio.h>
int main()
{
    int n,d,i=0;
    char res[20];
    scanf("%d",&n);
    for(;d=n%16;n/=16) res[i++] =d>9? 'A'+d-10:'0'+d;
    while(i-->0) putchar(res[i]);
    putchar('\n');
}

猜你喜欢

转载自blog.csdn.net/zuoside__lord/article/details/81071807