C++如何将2个BYTE数据转化为1个BYTE
来源:互联网 发布:达内java培训北京校区 编辑:程序博客网 时间:2024/06/08 12:14
C++如何将2个BYTE数据转化为1个BYTE
在解析串口读取数据的时候遇到这个问题:“从串口读取数据中取两个BYTE,但是目标是将这两个BYTE转化为一个BYTE,如:0x01 0x02 -> 0x12”。
其实转化思路很简单:将0x01 << 4 + 0x02 --> 0x12,即将高位BYTE左移4位在加上(或“位或上”)低位的BYTE,就得到想要的数据了。
但是,当串口读取到的是ASCII的形式,如0x31 0x32 ,这时想要转化为0x12,上面那种方法就不行。其实转化起来也很方便,即需要多转化一次,就是将ASCII形式的数据转化为上例中的HEX形式的数据,然后再进行合并即可。
下面给出一个转化函数:
BYTE ConvertHexChar(BYTE ch)
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else
return -1;
}
BYTE ConvertHexChar(BYTE ch)
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else
return -1;
}
通过这个函数,上例中的0x31、0x32 分别出来是 0x01、0x02,
阅读全文
0 0
- C++如何将2个BYTE数据转化为1个BYTE
- 将IntPtr转化为byte[]
- Android NV21 byte[] 数据转化为JPEG byte[] 数据
- 将Byte数组转化为String
- 将Byte数组转化为String
- [转贴]将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将inputstream转化为数组byte[]
- C# 将byte[]转化为string
- 如何将4个字节的int转为1个字节的BYTE?
- 如何将4个字节的int转为1个字节的BYTE?
- [C#]如何将自定义的structure转换为byte[]?
- int 转化为byte
- 系统重装不了的N种情况以及解决方法
- 为什么会这么痛苦,原因是......
- [JAVA学习笔记-72]关于Priority Inversion
- 应用签名不一致,该应用可能被篡改的问题
- Python第三方库——Matplotlib_子图共享坐标轴
- C++如何将2个BYTE数据转化为1个BYTE
- 31.退出功能-活动实践
- wireshark抓包分析--测试网站登录
- Android7.0中文API -- RatingBar
- LeetCode 49. Group Anagrams
- EPPLUS 操作ExcelC#
- Map集合的遍历方法
- Web应用开发周期
- 【Linux】使用gdb调试多进程多线程程序