将字符串转换为hex形式

news2025/2/24 5:46:15

1. 项目中,有个地方要使用MQTTX工具来发布订阅,而客户服务器需要发送的是hex形式的字符串,并且又要在字符串前面添加三个字节(第一字节:报文格式,第二第三字节:字符串长度)。

2. 奇葩的是这三个字节添加到开头,不是以字符串形式添加,而是以数值添加,所以就写了个工具用来转换字符串的小工具

#include<stdio.h>
#include<string.h>

void stringToHex(char* str) {
    int length = strlen(str);  // 获取字符串长度
    char arr[500];
    for (int i = 0; i < length; i++) {
        printf("%02x ", (unsigned char)str[i]);  // 将每个字符转换为十六进制并打印输出
        snprintf(&arr[2 * i], 4, "%2x", (unsigned char)str[i]);  // 将每个字符转换为十六进制并打印输出
    }
    printf("\n");
    printf("转换后:\r\n  %s", arr);
}

//char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"ext_power_volt\":24.04,\"signal_4g\":31,\"sw_version\":1.1.1}}}";
//char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"ext_power_volt\":24.04,\r\n\"signal_4g\":31,\r\n\"sw_version\":1.1.1}}}";
//char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"ext_power_volt\":24.04}}}";
//char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"signal_4g\":30}}}";
char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"sw_version\":\"1.1.1\"}}}";
//char arr[] = "{\"59451446\":{\"S1_ZT_1\":{\"ext_power_volt\":24.04,\"signal_4g\":31}}}";
int main()
{
    printf("字符串长度等于:0x%x\r\n", strlen(arr));
    stringToHex(arr);
	while (1);
	return 1;
}

这样我只需要修改字符串内容,然后复制转换后的字符串就可以 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始学习 Java:简单易懂的入门指南之线程同步(三十五)

线程同步 1.线程同步1.1卖票【应用】1.2卖票案例的问题1.3同步代码块解决数据安全问题【应用】1.4同步方法解决数据安全问题【应用】1.5Lock锁【应用】1.6死锁 2.生产者消费者2.1生产者和消费者模式概述【应用】2.2生产者和消费者案例【应用】2.3生产者和消费者案例优化【应用】…

如何避免大语言模型绕过知识库乱答的情况?LlamaIndex 原理与应用简介

本文首发于博客 LLM 应用开发实践 随着 LangChain LLM 方案快速普及&#xff0c;知识问答类应用的开发变得容易&#xff0c;但是面对回答准确度要求较高的场景&#xff0c;则暴露出一些局限性&#xff0c;比如向量查询方式得到的内容不匹配&#xff0c;LLM 对意图识别不准。所…

百度测试开发工程师面试心得

百度测试开发实习生面试心得&#xff1a; 电话面试&#xff1a; 面试官&#xff1a;首先做一下自我介绍吧 我&#xff1a;我是***&#xff0c;来自什么大学&#xff0c;现在大三&#xff0c;在学校期间担任过部长&#xff0c;副主席等职务&#xff0c; 组织举办了很多比赛&…

linux 服务器类型Apache配置https访问

一&#xff1a;查看服务器类型&#xff0c;下载相应的SSL证书 命令&#xff1a;netstat -anp | grep :80 httpd是Apache超文本传输协议(HTTP)服务器的主程序&#xff0c;所以下载Apache证书 二&#xff1a;将证书解压后复制到服务器上 三个文件&#xff1a;xxx.key xxx_publ…

PFSK152 3BSE018877R1 有源滤波器的定义

PFSK152 3BSE018877R1 有源滤波器的定义 有源滤波器是以晶体管和运算放大器为基本元件设计的滤波电路。除了这些元件&#xff0c;有源滤波器的电路还包含电阻和电容&#xff0c;但不包含电感。 我们知道滤波器具有频率选择性。因此&#xff0c;有源滤波器电路使用晶体管和运算…

《FAQ专场 | smardaten及应用软件的运维管理(上)》

近期smardaten新睿友增长迅速&#xff0c;睿睿收到了越来越多的问题咨询&#xff0c;真真切切感受到了大家对smardaten的好奇和喜欢。 必须给足咱们睿友安全感&#xff0c;所以睿睿把大家问的多的问题都整理了&#xff0c;陆续以FAQ专场形式给大家统一解答。 本期FAQ是《smar…

【开源】基于正点原子alpha开发板的第三篇系统移植

系统移植的三大步骤如下&#xff1a; 系统uboot移植系统linux移植系统rootfs制作 一言难尽&#xff0c;踩了不少坑&#xff0c;当时只是想学习驱动开发&#xff0c;发现必须要将第三篇系统移植弄好才可以学习后面驱动&#xff0c;现将移植好的文件分享出来&#xff1a; 仓库&…

Android之SpannableString使用

文章目录 前言一、效果图二、实现代码总结 前言 在开发中&#xff0c;往往有些需求是我们不愿意遇到的&#xff0c;但是也不得不处理的事情&#xff0c;比如一段文案&#xff0c;需要文案中某些文字变颜色或者点击跳转&#xff0c;所以简单写了几句代码实现&#xff0c;没什么…

备战蓝桥杯,那你一定得打这场免费且有现金奖励的算法双周赛!

失踪人口回归&#xff0c;好久没在CSDN上与大家交流了。因为在蓝桥开了一些课程&#xff0c;我的重心已经完全转向读研究生和教授课程。今天&#xff0c;我想向大家推荐一个竞赛&#xff0c;考虑到大家已经学习了很长时间的算法&#xff0c;这个竞赛将为你提供一个不仅可以实现…

ros学习笔记(1)Mac本地安装虚拟机,安装Ros2环境

Ros与Linux的关系 Ros环境基于Linux系统内核 我们平时用的是Linux发行版&#xff0c;centos&#xff0c;ubuntu等等&#xff0c;机器人就用了ubunut 有时候我们经常会听到ubunue的版本&#xff0c;众多版本中&#xff0c;有一些是长期维护版TLS&#xff0c;有一些是短期维护…

如何使用自动化工具编写测试用例?

在快速变化的软件开发领域&#xff0c;保证应用程序的可靠性和质量至关重要。随着应用程序复杂性和规模的不断增加&#xff0c;仅手动测试无法满足行业需求。 这就是测试自动化发挥作用的地方&#xff0c;它使软件测试人员能够提高效率、增加测试覆盖率并自信地交付高质量的产品…

嵌入式学习笔记(54)S5PV210的ADC控制器

11.3.1 ADC和&#xff08;电阻式&#xff09;触摸屏的关系 (1)ADC在210数据手册的section 10.7 (2)电阻式触摸屏本身工作时就依赖于AD转换&#xff0c;所以在210的SoC中电阻触摸屏接口本身和ADC接口是合二为一的。或者说电阻触摸屏接口使用了&#xff08;复用了&#xff09;A…

C语言_用于ADC数据的均值滤波算法

C语言_用于ADC数据的均值滤波算法 说明&#xff1a; 在采集ADC值的时候一般都是多次采集然后&#xff0c;然后取平均值&#xff0c;改进型做法就是去掉最大最小值剩下的再取平均值 unsigned short average(unsigned short arr[], unsigned char size) {unsigned int sum 0;for…

CVE-2020-36189 jackson-databind java反序列化漏洞

漏洞原理 jackson-databind是一套开源的java序列化与反序列化工具框架&#xff0c;可将java对象序列化为xml和json格式的字符串及提供对应的反序列化过程。由于其解析效率较高&#xff0c;目前是Spring MVC中内置使用的解析方式&#xff0c;该漏洞的触发条件是ObjectMapper反序…

JUC第二十八讲:JUC工具类: Semaphore详解

JUC工具类: Semaphore详解 本文是JUC第二十八讲&#xff0c;JUC工具类: Semaphore详解。Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量&#xff0c;它允许n个任务同时访问某个资源&#xff0c;可以将信号量看做是在向外分发使用资源的许可证…

智源发布最强开源可商用中英文语义向量模型 BGE,超越同类模型,解决大模型制约问题

0.介绍 语义向量模型(Embedding Model)已经被广泛应用于搜索、推荐、数据挖掘等重要领域。 在大模型时代,它更是用于解决幻觉问题、知识时效问题、超长文本问题等各种大模型本身制约或不足的必要技术。然而,当前中文世界的高质量语义向量模型仍比较稀缺,且很少开源。 为…

数字化教育的未来:数字孪生技术助力校园创新

随着科技的飞速发展&#xff0c;智慧校园成为教育领域的新宠。数字孪生技术&#xff0c;作为一项新兴技术&#xff0c;正日益深刻地影响着校园的运营和管理。它为学校提供了前所未有的工具和资源&#xff0c;使校园管理更加高效、智能化。本文将探讨数字孪生技术如何助力智慧校…

LeetCode 1488. 避免洪水泛滥【贪心,二分,有序集合】1973

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

nginx的重定向

nginx重定向--rewrite重写功能介绍 rewrite 的功能介绍 rewrite功能就是&#xff0c;使用nginx提供的全局变量或自己设置的变量&#xff0c;结合正则表达式和标记位实现URL重写以及重定向。 比如&#xff1a;更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需…

pytest中fixture的使用方法

一、pytest中的fixture是什么 为可靠的和可重复执行的测试提供固定的基线&#xff08;可以理解为测试的固定配置&#xff0c;使不同范围的测试都能够获得统一的配置&#xff09;&#xff0c;fixture提供了区别于传统单元测试&#xff08;setup/teardown&#xff09;风格的令人…