首页 > 其他分享 >Qt quint16 高低字节 quint8

Qt quint16 高低字节 quint8

时间:2024-03-12 09:44:37浏览次数:15  
标签:quint8 quint16 originalValue 低字节 highByte lowByte Qt

  在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函数,并将拆分后的高低字节打印出来。

标签:quint8,quint16,originalValue,低字节,highByte,lowByte,Qt
From: https://www.cnblogs.com/ybqjymy/p/18067643

相关文章

  • Qt/C++音视频开发69-保存监控pcm音频数据到mp4文件/监控录像/录像存储和回放/264/265/
    一、前言用ffmpeg做音视频保存到mp4文件,都会遇到一个问题,尤其是在视频监控行业,就是监控摄像头设置的音频是PCM/G711A/G711U,解码后对应的格式是pcm_s16be/pcm_alaw/pcm_mulaw,将这个原始的音频流保存到mp4文件是会报错的,在调用avformat_write_header写文件头的时候提示(-22)Invali......
  • Qt 将16进制的内容的QString字符串转为QByteArray数组
    1.QString存储十六进制内容我要发送的十六进制内容是0105040100将其储存在QString字符串中1QStringstr;2str="0105040100";2.核心语句将两位的字符串转换为16进制的Int型数字,然后通过强制类型转换成char类型的字符。(具体作用方式我还没去看,但是有用)(char)str.m......
  • Qt 常用数据类型转换
    1、int转QStringquint8转QString1quint8k=77;2QStringstr_1;3str_1=QString::number(k,10);4qDebug()<<str_1;//"77"5QStringstr_2=QString("%1").arg(k);6qDebug()<<str_2;//"77"2、quin......
  • Qt 自定义控件
    参考:https://blog.csdn.net/danshiming/article/details/134383612https://blog.csdn.net/u011832219/article/details/128531359 1、创建自定义控件新建qt项目(项目1),选择其他项目中的“Qt设计师自定义控件”,构建套件的版本类型需要与'帮助'列表中'AboutQtCreator'弹窗的......
  • 如何在Qt的 paintEvent之外进行绘制
    QPainter默认只能在paintEvent中进行绘制这在有些情况下会很不方便,有时候我们希望可以在任意地方直接进行绘制 为了实现这个目的,可以采用以下方法:继承QWidget,通过子类提供直接绘制的方法,并将所有绘制保存到中间的QPixmap最后在重载的paintEvent中将QPixmap复制显示:#prag......
  • QT 多线程
     第一种:静态函数1voidprint()2{3for(inti=0;i<5;i++)4qInfo()<<"helloglobalprint";5}6classMainWindow:publicQWidget7{8Q_OBJECT9public:10MainWindow(QWidget*parent=nullptr):QWidget(parent)......
  • QT信号与槽机制与事件机制的区别
    QT信号与槽机制与事件机制的区别第一:什么是信号与槽?事件?所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一......
  • 使用AT+MQTT指令连接华为云实现数据上传
    1准备工作硬件设备模块:ESP-01-S固件烧录工具:ESP8266下载器串口调试工具:VOFA+参考文章:stm32+AT指令+ESP8266接入华为云物联网平台并完成属性上报与下发的命令处理2固件更新2.1为什么要重新安装固件由于ESP-01-S模块出厂没有集成MQTT指令,故需要自己下载固件包,详见官网固......
  • Qt ModbusTCP通讯
    前言Modbus在工业控制中的应用非常多,由于其免费使用加上一定的历史环境,Modbus在PLC上的通讯应用非常多,本文主要介绍MosbusTCPmaster(主站)的实现。一、关于ModbusModbus是由MODICON公司开发的一种工业现场总线协议标准,随后施耐德推出了基于TCP/IP的MOdbus协议:Modbustcp;......
  • Qt 使用第三方libmodbus库实现Modbus通讯
    之前发表的Modbus通讯程序使用了QT自带的Modbus库,由于QT自带库的数据响应使用的是信号和槽来实现的,所以在一些读写频率较高的场景下,会引发很多异常问题,此篇文章使用C语言写的第三方Modbus库来实现modbus通讯。 经程序运行测试,调用该库进行modbus通讯完虐QT自带mosbus库。......