/*
* 17-May-2012 Auther.Zhang 0.0 Version
* Copyright & the right of find interpretation auther
* synopsis:特殊的进制转换
*
*/
#include
#include
typedef unsigned char Uchar; //1Byte
typedef unsigned short int Uint; //2Byte
typedef unsigned long Ulong; //4Byte
/****************************************************************
函数说明 :十进制转十六进制,字符转换不涉及数值大小,特殊用途
入口参数 :需要转换的十进制数
返回类型 :转换完成的十六进制数
初始时间 :2012-5-17 Lebaishi
修改记录 :
用途功能 :将十进制直接转换为十六进制,例如12直接转为0x12等
****************************************************************/
char Dec2hex(int dec_data)
{
Uchar *s=malloc(10);
Ulong bcd_data;
sprintf(s,"%d",dec_data); //dec_data=12,s="12"
sscanf(s,"%x",&bcd_data);
free(s);
return bcd_data;
}
/****************************************************************
函数说明 :十六进制转十进制,字符转换不涉及数值大小,特殊用途
入口参数 :需要转换的十六进制数
返回类型 :转换完成的十进制数
初始时间 :2012-5-17 Lebaishi
修改记录 :
用途功能 :将十六进制直接转换为十进制,例如0x12直接转为12等
****************************************************************/
char hex2Dec(Uchar bcd_data)
{
Uchar *s=malloc(10);
Ulong dec_data;
sprintf(s,"%x",bcd_data);
sscanf(s,"%d",&dec_data);
free(s);
return dec_data;
}
/***************** 主函数 ******************/
int main()
{
char hex_dec=0;
char dec_hex=0;
hex_dec = Dec2hex(12);
printf("Dec2hex(12):\n");
printf("come in:12 Dec output:%d\n",hex_dec);
printf("come in:12 Dec output:%#x\n",hex_dec);
dec_hex = hex2Dec(0x12);
printf("hex2Dec(0x12):\n");
printf("come in:0x12 output:%d\n",dec_hex);
printf("come in:0x12 output:%#x\n,dec_hex");
return 1;
}
阅读(4250) | 评论(0) | 转发(1) |