C语言实现字符串转十六进制
背景介绍
在嵌入式系统中, 通常会使用串口发送字符串的方式与通信模块通信,比如NBIoT模块。 有的通信模块不支持二进制形式进行透传,需要MCU事先将二进制数据转换为十六进制的字符串形式发送。比如,MCU需要发送的数据为0x1234,但通信模块只能接受字符串形式,因此必须要将其转换成字符串形式的"1234",通信模块才能正常接收处理。
具体要求
请实现一个转换函数void to_hex_string(char* pSrc, char* pDst, int len) 其中,原始二进制数据从pSrc输入,len表示数据的长度,转换后的结果保存到pDst中,pDst指向一个长度足够长的数组变量。 最后,打印该字符串的内容。
代码如下
#include <stdio.h>
#include <string.h>
void to_hex_string(const char *pSrc, char *pDst, int len)
{const char mapping_hex_string[] = "0123456789ABCDEF";for (int i = 0; i < len; i++, pSrc++){pDst[i * 2] = mapping_hex_string[*pSrc >> 4];// printf("pDst[i * 2]=%c\n", pDst[i * 2]);pDst[i * 2 + 1] = mapping_hex_string[*pSrc & 15];// printf("pDst[i * 2 + 1]=%c\n", pDst[i * 2 + 1]);}
}
int main() {char result[100] = {};short a = 0x1234;to_hex_string((char*)&a, result, sizeof(a));printf("a=0x%s\n", result);return 0;
}
输出结果:a=0x3412
备注:实际上因为int a 在PC内存中按小端方式存放,因此实际输出结果为0x3412。
C语言实现字符串转十六进制相关推荐
- C语言 文本字符串和十六进制形式的相互转换
C语言 文本字符串和十六进制形式的相互转换 一.简述 记--C语言实现 文本形式的字符 ...
- 【C语言】字符串转为十六进制(str_to_hex)
近日在开发过程中,遇到一个问题.将字符串转为十六进制,利用snprintf转换str的格式. 下面贴上代码实现. #include <stdio.h>void test_printf5(c ...
- c语言的十进制转十六进制字符串,用c语言写一个函数把十进制转换成十六进制,该如何处理...
用c语言写一个函数把十进制转换成十六进制 用c语言写一个函数把十进制转换成十六进制 网上找到一些,感觉有占乱 分享到: ------解决方案-------------------- #include ...
- c语言字符串转成二进制,C语言中字符串如何转换为二进制、八进制、十进制、十六进制...
在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, st ...
- C语言 -- 字符串和十六进制的相互转换方式
C语言的字符串操作并不像java,Csharp那样提供直接的方法,简单粗暴.所以,在转换的时候往往费力费时,近日做项目正好用到和java程序通讯,java发送过来的数据是十六进制数字组成的字符串,解析 ...
- C语言如何将十六进制字符串转为十六进制Byte
问题展示 我们的目标是 将十六进制字符串转为十六进制Byte 由上图我们可以清晰的看到 我们失败了.如何解决呢? 代码示例 #include<stdio.h> #include<st ...
- 【C语言】编写程序,输入一个以回车符结束的字符串(少于80个字符),过滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
题目: 编写程序,输入一个以回车符结束的字符串(少于80个字符),过滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出. **输入提示信息:"请输入十 ...
- HART协议数据格式避坑(C语言压缩字符串Packed-ASCII和ASCII转换)
HART协议数据格式避坑(C语言压缩字符串Packed-ASCII和ASCII转换) 首先HART数据格式如下: 重点就是浮点数和字符串类型 Latin-1就不说了 基本用不到 浮点数 浮点数里面 如 ...
- C语言里字符串的解析
根据给定的字符串,按照一定规则解析字符串 转自:http://www.cnblogs.com/yi-meng/p/3620244.html 函数名称: strtok 函数原型: char * ...
最新文章
- iOS 项目中包含多个 FFMPEG 方法冲突的通用解决办法。
- 更新至Android Studio4.1后发现as打不开的解决方案
- 2012百度实习生招聘面试题
- ADS中startup.s文件启动分析
- SharePoint v3:忘掉模拟用户Impersonate,SPSecurity.RunWithElevatedPrivileges来了
- 那些书对程序员最有影响
- 自动售货机支付服务器开发,自动售货机是如何实现移动支付的?
- android win10 驱动安装失败,解决在win10系统下小米手机驱动安装失败的具体步骤...
- 北京邮电大学计算机考研信息汇总
- 图像的像素、分辨率、像元尺寸、大小、清晰度的关系
- 诡异大阳飙升动因何在
- win10家庭中文版系统配置远程桌面连接
- Win10系统导出证书私钥及公钥
- IP协议详解之IPv6头部结构简介
- 苹果发布AirPods 3,TWS真无线蓝牙耳机市场活力依旧
- 【SpringCloud】Could not find artifact org.springframework.cloud:spring-cloud-starter-xxx
- 微信小程序开发—— app.json
- 关于mailx邮件发不出去的解决办法
- HTML基础选择器之属性选择器的基本介绍
- 安装openKylin 开源操作系统 (ubuntukylin-22.04-pro-amd64.isowindows版)