HEX与ASCII转换

这篇博客介绍了两个静态函数,HexToAscII和AscIIToHex,用于将金额的HEX形式转换为ASCII,以及反之。HexToAscII函数接收HEX字符串并转换成对应的ASCII字符,而AscIIToHex则将ASCII字符串转化为HEX表示。函数中包含了错误检查和转换逻辑,例如数值溢出和长度验证。
摘要由CSDN通过智能技术生成

/****************************************************************************** 
 函 数 名:HexToAscII
 功    能:把金额HEX转换为ASC,如0x0c转为"12",0x0c,0x0c转为"3084"
 参数说明:
 参数1:
 参数2:
 
 返 回 值:成功返回0 失败返回-2
 描    述:无
******************************************************************************/
static int HexToAscII(unsigned char *src, int slen, char *dst, int dlen)

 long num=0;
 int i = 0;
 char TempBuf[32];
 
 if (dlen>32 || slen>8 || slen>dlen)
 {
                //debug
                sprintf(printf_buf,"HexToAscII len error/r/n");
                Uart_Printf();
  return -2;
 }

 for (i=0; i<slen; i++)
 {
  num += (src[i] << (slen-1-i)*8);
 }
 
 sprintf(TempBuf, "%d", num);
 memset(dst, '0'

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值