字符串和十六进制数组互相转化函数

// 这段代码定义了一个名为str_to_hex的函数,该函数将一个字符串(str_in) 转换为十六进制数并存储在另一个字符串(hex_out)中。
// 函数接受三个参数:
// u8 *str_in:输入字符串的指针。
// u8 *hex_out:输出十六进制数的指针。
// u16 len:输入字符串的长度/2。
// 函数的主体是一个for循环,从i = 0开始,直到i < len。在每次迭代中,它使用sscanf函数从输入字符串中读取两个字符,并将其解析为十六进制数。然后将解析后的十六进制数存储在输出字符串的相应位置。
void str_to_hex(u8 *str_in, u8 *hex_out, u16 len)
{
    for (int i = 0; i < len; i++)
    {
        sscanf((const char *)(&str_in[i * 2]), "%2hhx", &hex_out[i]);
    }
}
// 这段代码定义了一个名为hex_to_str的函数,该函数将一个十六进制数组(hex_in)转换为一个字符串(str_out)。
// 函数接受三个参数:
// u8 *hex_in:一个指向十六进制数组的指针。
// u8 *str_out:一个指向输出字符串的指针。
// u16 len:输入数组的长度。
// 函数通过一个for循环遍历输入数组的每个元素。在循环内部,使用sprintf函数将当前元素转换为一个两位十六进制数,并将其存储在输出字符串中。具体来说,%02x表示以两位十六进制大写形式输出,不足两位时前面补0。最后,将转换后的字符串存储在str_out指针所指向的位置。
void hex_to_str(u8 *hex_in, u8 *str_out, u16 len)
{
    for (int i = 0; i < len; i++)
    {
        sprintf((char *)(&str_out[i * 2]), "%02x", hex_int[i]);
    }
}
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值