Chinaunix首页 | 论坛 | 博客
  • 博客访问: 331428
  • 博文数量: 47
  • 博客积分: 834
  • 博客等级: 军士长
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-07 09:38
文章分类
文章存档

2018年(1)

2015年(1)

2014年(2)

2013年(2)

2012年(23)

2011年(18)

分类: C/C++

2012-05-17 11:44:29

/*
  * 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;
}
阅读(4188) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~