用C语言把十进制化为十六进制!

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:51:54
准确一点!

#include "stdio.h"
#include "conio.h"

main()
{char a[10],*p;int s=0,i;
gets(a);
p=a;
while(*p!='\0')
{
s=s*16+*p-'0';
p++;}
printf("%d",s);

getch();
}

ls各位。。。lz又没说要输出

其实呢,要充分利用一些性质,下面这个函数将一个int转化为一个char*,这个char*要作为参数传入,否则函数返回时将使之失效.

void convert(char* destin, int dec)
{
char hex[]="0123456789abcdef";
while(dec)
{
*(destin++) = hex[dec & 15];
hex = hex >> 4;
}
return;
}

注意由于事先无法确定位数所以这个字符串是逆序的,比如169会被转化为 "9A" 而不是 "A9"

main()
{int a;
scanf("%d",&a);
printf("十进制数%d的十六进制为%x",a,a);
}

main()
{int a;
scanf("%d",&a);
printf("十进制数%d的十六进制为%x",a,a);
}

和转8进制一样。好像是除16

void ConvertToHex(int i)
{
printf("%x",i);
}