C++如何将2个BYTE数据转化为1个BYTE

本文介绍了如何在C++中处理串口读取的ASCII数据,将两个ASCII字节(如0x31 0x32)转换为一个单一的字节(0x12)。关键在于先将ASCII字符转换为十六进制数,然后通过位运算(左移和位或)将高位和低位组合在一起。提供了一个名为`ConvertHexChar`的函数用于将ASCII字节转化为HEX字节。
摘要由CSDN通过智能技术生成
C++如何将2个BYTE数据转化为1个BYTE


在解析串口读取数据的时候遇到这个问题:“从串口读取数据中取两个BYTE,但是目标是将这两个BYTE转化为一个BYTE,如:0x01 0x02 -> 0x12”。
其实转化思路很简单:将0x01 << 4 + 0x02 --> 0x12,即将高位BYTE左移4位在加上(或“位或上”)低位的BYTE,就得到想要的数据了。
但是,当串口读取到的是ASCII的形式,如0x31 0x32 ,这时想要转化为0x12,上面那种方法就不行。其实转化起来也很方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值