C语言 十进制 转化16进制

C语言中的itoa函数  ,
/**Ê®½øÖÆת»¯ÎªÊ®Áù½øÖÆ**/
uint8_t *itoa(int num,uint8_t* str,int radix)
{
	uint8_t index[]="0123456789ABCDEF";
	unsigned unum;
	int i=0,j,k;
	if(radix==10&&num<0)/*?????*/
	{
		unum=(unsigned)-num;
		str[i++]='-';
	}
	else unum=(unsigned)num;/*????*/
	do
	{
		str[i++]=index[unum%(unsigned)radix];
		unum/=radix;
	}	
		while(unum);
		str[i]='\0';
	if( str[0]=='-')k=1;/*+??-?*/
	else k=0;
	char temp;
	for(j=k;j<=(i-1)/2;j++)
	{
		temp=str[j];
		str[j]=str[i-1+k-j];
		str[i-1+k-j]=temp;
	}
	return str;
}

使用的时候,一定 要注意,
		 i++;
		 itoa(i,data2,10);
		 //10千万不要忘了 ,10 代表的是 将10进制转化为至六进制

你可能感兴趣的:(c语言)