10进制整型转换成16进制显示的字符串

原文出处:《十进制数转为十六进制字符串

本文修改了以上原文的代码,修正了[0-16]区间的10进制数转换成16进制数时无法正确转换的问题。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<stdio.h>
#include<stdlib.h>

char Hexadecimal_Code[]="0123456789ABCDEF";
char str_Temp[10];

char *Decimal_To_Hexadecimal_String(int Decimal_Data)
{
int High,Low,i=0;
if(Decimal_Data <= 0 || Decimal_Data > 255)
exit(0);

High=Decimal_Data >> 4;
Low=Decimal_Data & 15;

str_Temp[i++]=Hexadecimal_Code[High];
str_Temp[i++]=Hexadecimal_Code[Low];
str_Temp[i]='\0';

return str_Temp;
}

int main()
{
printf("%s\n",Decimal_To_Hexadecimal_String(5));

return 0;
}