打怪升级之如何发送HEX进制的数据出去
Hex数据老大难
不少人都困扰于如何将电脑中读取到的string类型的数据变成整形发送出去。一半来说,不论你调用的通信方式是串口的还是网络的,亦或是PCIE的,其在电脑端的实际情况都是以系统API的形式呈现的。而系统API函数提供的接口,本质上只需要两类变量即可:
1.你的数据首位地址,一半来说就是一个char*变量;
2.你的数据总共长度。
比如,如果你使用ASCII编码,一串string发送的过程就是,你将这串string的首地址告诉API,再将string的长度告诉API,然后API根据这一串数据去读取地址控件中相应长度的数据。
一个地址char 变量内保存的数据是什么,是我们比较关心的。比如,如果你使用的是char * 表示的一串数据(string),那么根据string中的每一个字符元素对应的ASCII码,才是实际内存中char代表的内容。
所谓HEX,其实无意义,因为不论是什么样的数据或者编码,在内存里其实存的都是二进制,你按16位16位的取就可以了,API发送的也是直接内存里的二进制数据。重点始终在于,我们如何整理好我们在内存中的二进制数据。
%c与%d
让我们打开天窗说亮化吧,一个char对应的保存内容是什么,由下面这个东西可以解释:
char a = 97;//%c a %d 97char a = a;//报错char a = 'a';//%c a %d 97char a = "a";//报错char a = 'WIND';//%c D %d 68char a = '爱';//%c ? %d -46(这个后面专门再讨论)
也就是说,一个char的内存其很固定,一直都是一个8位宽字节,里面保存了一个整数,比如97。也就是说,实际API发送的东西就是%d的东西,一个char由一个8位宽字节表示,所以其范围为0到255(ASCII的总字符数少于255)。如果char a表示了一个不在ASCII里的字符,那么它一定是某个其他你暂时不知道的编码格式里的数字–文字对应表,你需要找到这样的对应表,比如UINCODE编码的本质就是一种数字–文字对应表,GBK也是。
这里我们展示三种实验:
#include<iostream>
int main()
{char a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

#include<iostream>
int main()
{int a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

#include<iostream>
int main()
{long a = '爱';int len = sizeof(a);printf("c is :%c \nd is %d \nlen is %d \n",a,a,len);return 0;
}

我们在汉字字符集编码查询中找到如下结论:

可以发现,尽管你的输入是个汉字,但依然是以数字的方式与汉字对应的。你的char整形或者int整形,保存的事实上也是数字,是一串固定位宽的数据,所以你只要保证你的%d数据正确,天然的就是HEX,根本就不用特地的再转。
最后,援引一些我问大佬的结论:
'爱’这样的写法赋值,跟你所用的文本工具(比如cpp)打开后的编码方式直接相关。
如何%d的赋值
好了,现在我们考虑这样一个问题:
你有一个char a = ‘1’;
你如何把char b = 1;
赋值成这种形式?
#include<iostream>
int main()
{char a = '1';int len = sizeof(a);char b = atoi(&a);printf("c is :%c \nd is %d \nlen is %d \n", b, b,len);return 0;
}
没错,用最简单的stoi或者atoi函数转换一下就可以了。

相关文章:
打怪升级之如何发送HEX进制的数据出去
Hex数据老大难 不少人都困扰于如何将电脑中读取到的string类型的数据变成整形发送出去。一半来说,不论你调用的通信方式是串口的还是网络的,亦或是PCIE的,其在电脑端的实际情况都是以系统API的形式呈现的。而系统API函数提供的接口ÿ…...
国产8K摄像机拍摄回顾与画面数据反馈
本文分析两款国产8K摄像机,一款是全画幅,一款是M43画幅。一、全新国产全画幅8K B1机器参数数据汇总:全画幅8K 60fps,受益于8K全画幅的优势与大幅升级的图像处理系统,BOSMA 8K摄像机系统提升到新的高度。拍摄支持&#…...
C++中拷贝构造和赋值重载的注意事项以及编译器的优化处理
C中拷贝构造和赋值重载的注意事项以及编译器的优化处理前言1. 拷贝构造和赋值重载的易混淆点和注意事项1.1 易混淆点1.2 注意事项2.编译器对拷贝构造和赋值重载的优化处理前言 本文可以帮助你对下面: (1)何时调用拷贝构造何时调用赋值重载 &a…...
Java设计模式_单例模式
Java设计模式_单例模式 亦称: 单件模式、Singleton 意图 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a…...
刚刚学完CSS :display float,flex flow 傻傻分不清了
目录 描述 示例: CSS 中的 display CSS 中的 float CSS 中的 flex 描述 刚刚学完CSS ,导致浮动(float),弹性布局(display:flex)好几个字段配置属性已经分不清了。 display float 就同层级别…...
python建立图片索引数据库,根据一段文字,找到存放在电脑上最匹配的图片
python建立图片索引数据库,根据一段文字,找到存放在电脑上最匹配的图片 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 一、程序的用处 一键视频 可以根据一…...
MySQL OCP888题解048-letter N in slow query log(慢查询日志里的字母N)
文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:mysqldumpslow - 总结缓慢的查询日志文件4、实验4.1、实验14.1.1、实验目的4.1.2、实验前准备4.1.3、实验步骤4.1.4、实验结论5、总结1、原题 1.1…...
数据采集 - 笔记 2
1快速实现西门子S7系列PLC数据采集 快速实现西门子S7系列PLC数据采集 - 知乎 2 什么是时序数据库? 时序数据库(Time Series Database)是一种特殊类型的数据库,用于存储和处理时间序列数据。时间序列数据是指按时间顺序排列的数…...
电子技术——数字IC技术,逻辑电路和设计方法
电子技术——数字IC技术,逻辑电路和设计方法 在我们之前的学习中,我们学习了CMOS技术,然而CMOS技术并不是唯一的数字逻辑技术,因此,本节系统的介绍当今使用的数字技术和逻辑电路族。 数字IC技术和逻辑电路族 逻辑电…...
[ROS2 知识] 包依赖关系和rosdep详述
一、说明 如果你建立一个工作空间,试图将所有包的依赖项搞明白,或者期望将包的依赖项全部安装到工作空间中,您看本文是正确选择。本文将解释如何使用 rosdep 管理外部依赖项。 二、介绍rosdep 2.1 rosdep是何物? rosdep 是 ROS 的依赖管理实用程序,可以与 ROS 包和外部库…...
mysql创建索引导致死锁,数据库崩溃,完美解决方案
文章目录写在前面一、短事务场景下,执行DDL语句场景分析1、短事务场景下,执行表字段添加操作2、短事务场景下,执行表字段修改操作3、短事务场景下,执行表字段删除操作(1)往里添加一条数据试试4、短事务场景…...
c++11 标准模板(STL)(std::unordered_map)(八)
定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…...
企业ISO体系认证办理,可以自行申请吗?为什么都要找咨询公司?
企业ISO体系认证办理,可以自行申请吗?为什么都要找咨询公司? 很多人认为ISO咨询公司为中介机构,希望直接找认证公司进行认证。其实认证机构担任的是认证审核职责,咨询机构担任的是咨询职责。按中国国家任可监委员会的…...
二、Neo4j源码研究系列 - 单步调试
二、Neo4j源码研究系列 - 单步调试 一、背景介绍 上一篇我们已经把了neo4j的源码准备以及打包流程完成了,本篇将讲解如何对neo4j进行单步调试。对于不了解如何编译打包neo4j的读者,请阅读《一、Neo4j源码研究系列 - 源代码准备》。 大纲: …...
基于Qt WebEngine 的Web仪器面板GUI程控技术
随着IIoT的发展,很多工业仪器也具备了远程管理的GUI。与早期使用串口进行命令交互不同,这些GUI可以直接在远程呈现数据。 作为希望对仪器、软件进行二次开发的小公司来说,会遇到GUI人工操作转自动化的需求。在无法通过串口等传统接口进行自动…...
海康摄像头使用RTSP
1.协议格式。海康威视IP摄像头rtsp协议地址如下:rtsp://[username]:[passwd][ip]:[port]/[codec]/[channel]/[subtype]/av_stream主码流:rtsp://admin:12345192.168.1.64:554/h264/ch1/main/av_streamrtsp://admin:12345192.168.1.64:554/MPEG-4/ch1/mai…...
编程语言分类
目录 ❤ 机器语言 机器语言的编程 ❤ 汇编语言 ❤ 高级语言(编程语言) 编译型 解释型 ❤ 动态语言和静态语言 ❤ 强类型定义语言和弱类型定义语言 ❤ 主流语言介绍 C语言 C java python JavaScript SQL PHP python从小白到总裁完整教程目录:https://blog…...
[nodejs开发] typescript引入js模块或文件
首先更改tsconfig.json 中的compilerOptions属性:"moduleResolution": "Node"假设有一个abc.js其内容如下:var Circle (function () {function Circle() {}Circle.prototype.draw function () {console.log("Cirlce is drawn…...
小帮软件机器人应用于通信集团财务数据填报、编制、稽核、银企对账
某大型通信集团是国有控股通信运营服务提供商,主要从事国内外通信设施服务业务、固定通信业务、移动通信业务、数据通信业务、网络接入业务、卫星国际专线业务和通信业务相关系统集成业务,管辖20多家子(分)公司、服务运营和支持网…...
37. CF-Weights Distributing
链接 这是一个比较经典的题目。容易想到求出两段路径重合的部分,然后贪心的放权值。那么跑三次最短路,枚举重合部分的端点即可。 正解没什么好说的。这题有趣的地方在于,如果数据比较弱,可能会把一些错误做法放过去。 一种错误…...
如何免费解锁Cursor Pro:完整破解方案与实战指南
如何免费解锁Cursor Pro:完整破解方案与实战指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial re…...
Midjourney Minwa风格终极调试手册:7类常见失效场景(水墨晕染失真、线条断裂、文化符号错位)及对应--stylize动态补偿值
更多请点击: https://intelliparadigm.com 第一章:Midjourney Minwa风格的本质解构与美学基因图谱 Minwa(民画)风格源自朝鲜半岛传统民间绘画,其核心并非写实再现,而是以象征性构图、平涂色块、非透视空间…...
告别照片管理烦恼:ExifToolGUI帮你3步搞定批量元数据处理
告别照片管理烦恼:ExifToolGUI帮你3步搞定批量元数据处理 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为数百张旅行照片的整理而头疼?拍摄时间需要统一调整,版…...
龙标管官方,凰标护民间:中国文化双轨时代到来@凤凰标志
龙标掌正统 凰标护民间 中国文艺进入「双轨」新时代官方有规制,民间有温度; 一龙定正统,一凰润众生。失衡百年:单轨秩序的盲区 长久以来,中国文艺创作领域存在一处结构性失衡:官方正统民间原创有规制、有标…...
从空洞卷积到多尺度感知:图解PyTorch中ASPP的设计哲学与实现细节(附可运行代码)
从空洞卷积到多尺度感知:图解PyTorch中ASPP的设计哲学与实现细节(附可运行代码) 当我们观察一幅画时,眼睛会自然地聚焦在不同尺度的细节上——从整体构图到局部纹理,这种多尺度感知能力是人类视觉系统的核心优势。计算…...
通过Taotoken用量看板清晰掌握团队API成本与模型使用偏好
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken用量看板清晰掌握团队API成本与模型使用偏好 对于项目负责人或技术管理者而言,在引入大模型能力后&#x…...
终极KMS激活指南:如何永久免费激活Windows和Office系统
终极KMS激活指南:如何永久免费激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows激活弹窗而烦恼吗?是否遇到过Office突然变成只读模式…...
基于Nuxt 4与Shadcn/ui的现代全栈仪表板开发实战
1. 项目概述:一个现代全栈仪表板的技术栈选择 最近在做一个内部管理后台,需要快速搭建一个既美观又功能齐全的仪表板。我的核心需求很明确:开发要快、代码质量要高、用户体验要好,并且要能轻松应对多语言场景。在评估了市面上各种…...
DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程
DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
Helm 2到Helm 3迁移实战:深入解析helm-2to3插件原理与操作指南
1. 项目概述与背景 如果你和我一样,在Kubernetes生态里摸爬滚打了几年,那你一定对Helm这个“包管理器”又爱又恨。爱的是它用声明式的Chart把复杂的应用部署变得像 helm install 一样简单;恨的是版本升级带来的“阵痛”,尤其是从…...
