在串口通讯中,时常涉及到16进制字符串发送,需要将字符串转为16进制。

Example:string str = "07 0a 02 10 03 00 00 00 00 00"#include <stdio.h>
#include <stdlib.h>
#include <string.h>int char2bits(char ch)
{int bits = 0;if (ch >= 'a' && ch <= 'z') {bits = ch - 'a' + 10;} else if (ch >= 'A' && ch <= 'Z') {bits = ch - 'A' + 10;} else if (ch >= '0' && ch <= '9') {bits = ch - '0';} else{bits = -1;}return bits;
}int hex2bytes(const char *hex, char *bytes, int size)
{int len = strlen(hex);int nbytes = (len + 1) / 3;if (nbytes > size) {return -1;} int n;for (n = 0; n != nbytes; ++ n) {int lndx = n * 3;int rndx = lndx + 1;int lbits = char2bits(hex[lndx]);int rbits = char2bits(hex[rndx]);if (lbits == -1 || rbits == -1){return -1;}bytes[n] = (lbits << 4) | rbits;}return nbytes;
}int main(int argc, char* const argv[])
{const char *hex = "07 0A 02 10 03 00 00 00 00 00";char stream[10];int nbytes = hex2bytes(hex, stream, 10);if (nbytes != -1) {int i = 0;for ( ; i < nbytes; ++ i) {printf("%02x ", stream[i]);}}return 0;
}

C++字符串转16进制相关推荐

  1. Java 字符串,byte[],16进制的字符串互转

    Java 字符串,byte[],16进制的字符串互转 /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char ...

  2. python 16进制补零_Python输出16进制不带0x补零,整数转16进制,字符串转16进制

    python输出16进制不带0x补零,整数转16进制,字符串转16进制 在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性.例如调试服务端刚接到的二进制数据(里面包含很多非可 ...

  3. 字符串转16进制字节数组,字节数组转16进制字符串

    /// <summary>/// 字符串转16进制字节数组/// </summary>/// <param name="hexString">& ...

  4. 将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 很多事根本就没有那么多的前提可言,想做事,就不要把先决条件看得过重. 文 章 导 读 今天给小伙伴们介绍下了下进制转换和字符串与数值互转的方法 ...

  5. linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...

    嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...

  6. python- ASCII字符串转为16进制格式

    代码 #!/usr/bin/python3 hexForamt="\\x" # 更改这里的ASCII字符串 asciiStr="AAABBBccc" def a ...

  7. Unity C# 将String字符串转换为16进制Byte数组

    今天开发过程中后台给了我一个已经转成string了的16进制字符串,我这边做了些处理,将str又转回16进制,并以16位16进制byte数组的形式存放了. void Start(){string st ...

  8. Python输出16进制不带0x补零,整数转16进制,字符串转16进制

    Python输出16进制不带0x补零,整数转16进制,字符串转16进制   在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性.例如调试服务端刚接到的二进制数据(里面包含很多 ...

  9. C# 数字转16进制和字符串转换16进制

    数字转换16进制.前提是你输入的必须是数字,而不是别的东西. private string StringToHexString(string s)//数字转换16进制{long Num = Conve ...

最新文章

  1. 关于学习Python的一点学习总结(16->popitem()->sedefault()->update()->values())
  2. Nature Protocols | 密歇根州立大学何胜阳/Tiedje团队建立拟南芥微生物组研究的标准化生长体系!...
  3. ADO.NET连接字符串
  4. multipath管理存储多路径
  5. Spider Scrapy 框架爬虫
  6. 通透!数据仓库领域常见建模方法及实例演示
  7. 【100Days of 100 line Code】2 day
  8. “vueuse“ 中文索引与用例
  9. Mac下配置ndk/adb
  10. DevExpress导出Excel样式设置
  11. OPENCV中滑动条的使用
  12. pythonocc_链轮
  13. android陀螺仪方向,Android中陀螺仪传感器正确旋转值的计算
  14. Proxy和Reflect
  15. element-ui table表格。数组对应的一组数据占有两行怎么处理?
  16. 360视频:金字塔棱台投影TSP
  17. Python 外星人入侵(一):武装飞船
  18. 基于web的教学答疑系统
  19. Dynamic ARP Inspection(动态ARP检测)功能,简称DAI
  20. 微信小程序云开发教程-手把手:获取微信订阅消息的模板ID

热门文章

  1. adb连接夜神模拟器提示:adb unable to connect to 127.0.0.162001 cannot connect to 127.0.0.16200 由于目标 计算机积极拒绝
  2. 图像形成(5)球面透视投影和近似相机模型
  3. 学习BoundsChecker
  4. 二叉树的中序遍历-递归和非递归算法
  5. 供电公司业扩工程项目管理(原创)
  6. Java回顾-String/StringBuilder/StringBuffer
  7. 2023年技术分析|血氧仪芯片方案
  8. 安徽省二计算机office试题及答案,计算机二级(MSOFFICE)模拟考试题及答案题目2
  9. 数据分析编程检验——车流量统计(不能使用pandas和numpy)
  10. Liferay的学习