c语言16进制与字符串互转,C语言版的16进制与字符串互转函数

/*

// C prototype : void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)

// parameter(s): [OUT] pbDest - 输出缓冲区

// [IN] pbSrc - 字符串

// [IN] nLen - 16进制数的字节数(字符串的长度/2)

// return value:

// remarks : 将字符串转化为16进制数

*/

void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)

{

char h1,h2;

BYTE s1,s2;

int i;

for (i=0; i

{

h1 = pbSrc[2*i];

h2 = pbSrc[2*i+1];

s1 = toupper(h1) - 0x30;

if (s1 > 9)

s1 -= 7;

s2 = toupper(h2) - 0x30;

if (s2 > 9)

s2 -= 7;

pbDest[i] = s1*16 + s2;

}

}

/*

// C prototype : void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen)

// parameter(s): [OUT] pbDest - 存放目标字符串

// [IN] pbSrc - 输入16进制数的起始地址

// [IN] nLen - 16进制数的字节数

// return value:

// remarks : 将16进制数转化为字符串

*/

void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen)

{

char ddl,ddh;

int i;

for (i=0; i

{

ddh = 48 + pbSrc[i] / 16;

ddl = 48 + pbSrc[i] % 16;

if (ddh > 57) ddh = ddh + 7;

if (ddl > 57) ddl = ddl + 7;

pbDest[i*2] = ddh;

pbDest[i*2+1] = ddl;

}

pbDest[nLen*2] = '\0';

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值