您的位置:首页 > 其它

十进制数与十六进制字符串的转换

2014-09-30 10:09 295 查看
#include <stdio.h>

#include <string.h>

void func(int a,char b[])

{

    char *p,c;

    

    p=b;

    while(a!=0)

    {

        *p=a%16;     //取出十进制数的十六进制形式的个位尾数

        a/=16;

        if(*p>=0&&*p<=9)      //把这个尾数转成十六进制字符

        {

            *p=*p+'0';

        }

        else

        {

            *p=*p-10+'A';

        }

        p++;

    }

    *p='\0';

    for(int i=0,k=(int)strlen(b)-1;i<k;i++)   //翻转十六进制字符串

    {

        c=b[i];

        b[i]=b[k];

        b[k]=c;

        k--;

    }

    char d[22]="0X";   //在字符串前加上"0X",表示这是十六进制

    strcat(d,b);

    strcpy(b,d);

}

int main()

{

    int a;

    char b[20];

    

    printf("请输入一个整数:");

    scanf("%d",&a);

    func(a,b);

    printf("%s\n",b);

    

    return 0;

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