C语言高手来帮帮忙,要求程序将一个十进制转换成十六进制整数,用数组分别存放十六进制的字符再输出

2025-05-09 03:04:02
推荐回答(2个)
回答1:

#include
#include
#define BUFF_SIZE 100

char Hex[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void Covert2HexStr(int num, int buff_size, char * buff)
{
int t;
int count = (int)(log(num)/log(16));
buff[count+1]=0;

for(;count >=0;--count)
{
t = num % 16;
num /= 16;
*(buff+count) = *(Hex+t);
}

}

int main()
{
char buf[BUFF_SIZE];
int a=0x06FE1234;
Covert2HexStr(a,BUFF_SIZE, buf);

printf("%s\n",buf);
}
/**
输出:6FE1234
**/

回答2:

printf("%x",i);

就行了。。。