HEX与ASCII转换

HEX与ASCII相互转换函数实现
这篇博客介绍了两个静态函数,HexToAscII和AscIIToHex,用于将金额的HEX形式转换为ASCII,以及反之。HexToAscII函数接收HEX字符串并转换成对应的ASCII字符,而AscIIToHex则将ASCII字符串转化为HEX表示。函数中包含了错误检查和转换逻辑,例如数值溢出和长度验证。
部署运行你感兴趣的模型镜像

/****************************************************************************** 
 函 数 名: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', dlen); 
 memcpy(dst+dlen-strlen(TempBuf), TempBuf, strlen(TempBuf));
 return 0;
}
/****************************************************************************** 
 函 数 名:AscIIToHex
 功    能:把金额ASC转换为HEX,如"12"转为0x0c,"3084"转为0x0c,0x0c
 参数说明:
 参数1:
 参数2:
 
 返 回 值:成功返回0 失败返回-2
 描    述:无
******************************************************************************/
static int AscIIToHex(char *src, int slen, char *dst, int dlen)

 long num=0;
 int i = 0;
 char TempBuf[32]; 

 memset(TempBuf, 0, sizeof(TempBuf));
 memcpy(TempBuf, src, slen);
 num = atoi(TempBuf);

 if (slen>32 || dlen>8 || dlen>slen)
 {
                //debug
                sprintf(printf_buf,"AscIIToHex len error/r/n");
                Uart_Printf();
  return -2;
 }

 for (i=0; i<dlen; i++)
 {  
  dst[i] = (num >> (dlen-1-i)*8)&0x00000000FF;
 }
 
 return 0;
}

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值