一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

  在C++中,将一个quint16(即无符号16位整数)拆分成高字节和低字节可以通过位运算来完成。quint16通常是通过Qt的数据类型quint16来表示的。

  以下是一个示例代码,演示如何将quint16拆分成高低字节:

 1 #include <QtGlobal>
 2 #include <iostream>
 3 
 4 int main() {
 5     quint16 originalValue = 0xABCD; // 示例值
 6 
 7     quint8 highByte = (originalValue >> 8) & 0xFF; // 获取高字节
 8     quint8 lowByte = originalValue & 0xFF; // 获取低字节
 9 
10     std::cout << "Original Value: 0x" << std::hex << originalValue << std::endl;
11     std::cout << "High Byte: 0x" << std::hex << (int)highByte << std::endl;
12     std::cout << "Low Byte: 0x" << std::hex << (int)lowByte << std::endl;
13 
14     return 0;
15 }

  在这段代码中,我们首先将originalValue右移8位来获取高字节部分,然后通过位与操作和0xFF进行掩码,以确保只保留最低8位。低字节部分直接通过0xFF掩码得到。然后我们将这些值打印出来,以十六进制形式显示。

  将拆分quint16为高低字节的功能封装到一个函数中。以下是一个示例:

 1 #include <QtGlobal>
 2 #include <iostream>
 3 
 4 void splitQuint16(quint16 originalValue, quint8& highByte, quint8& lowByte) {
 5     highByte = (originalValue >> 8) & 0xFF; // 获取高字节
 6     lowByte = originalValue & 0xFF; // 获取低字节
 7 }
 8 
 9 int main() {
10     quint16 originalValue = 0xABCD; // 示例值
11     quint8 highByte, lowByte;
12 
13     splitQuint16(originalValue, highByte, lowByte);
14 
15     std::cout << "Original Value: 0x" << std::hex << originalValue << std::endl;
16     std::cout << "High Byte: 0x" << std::hex << (int)highByte << std::endl;
17     std::cout << "Low Byte: 0x" << std::hex << (int)lowByte << std::endl;
18 
19     return 0;
20 }

  在这个示例中,我们定义了一个名为splitQuint16的函数,该函数接受一个quint16类型的原始值,以及两个引用参数highBytelowByte,用于存储拆分后的高低字节。在main函数中,我们调用splitQuint16函数,并将拆分后的高低字节打印出来。

posted on 2024-03-12 09:41  一杯清酒邀明月  阅读(389)  评论(0编辑  收藏  举报