首页 > 编程语言 >Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)

Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)

时间:2024-10-26 12:19:57浏览次数:7  
标签:知识点 Qt double num quint64 str num1Str GPIB

文章目录

Qt编程技巧小知识点(5)GPIB缓存区数据读取(升级版)

  大端小端的问题,GPIB返回的数据经常是小端数据,而我们转化需要大端数据,看代码,Qt的这个函数很好用哦!

  • 代码输入
// 添加库文件
#include <QtDebug>
#include <QtEndian>

QByteArray num1Str="40971FFEA2D38007";
QString str = num1Str;
quint64 num=str.toULongLong(nullptr,16);//数据类型转化
quint64 bigEndianNum= qToBigEndian(num);//大端数据转化
quint64 littleEndianNum = qToLittleEndian(num);//小端数据转化
qDebug()<<"QByteArray numlStr = "<< num1Str;
qDebug()<<"QString str = "<< str;
qDebug()<<"quint64 hex= "<< QString::number(num,16); //十六进制显示
qDebug()<<"quint64 bigEndianNum = "<<QString::number(bigEndianNum,16);
qDebug()<<"quint64 littleEndianNum = " << QString::number(littleEndianNum,16);
  • 下面是 qDebug()的输出结果:
QByteArray num1Str="40971FFEA2D38007"
QString str = "40971FFEA2D38007"
quint64 hex = "40971ffea2d38007"
quint64 bigEndianNum ="780d3s2fe1f9740"//这个便是我们要的转换结果
quint64 lttleEndianNum="49971ffea2d38007"
  • 另外,如果实现64位二进制或16位十六进制的实型(double)数据转换,这个函数非常好用,代码分享在下面了。
QByteArray num1Str="40971FFEA2D39997";
QString str = num1Str;
quint64 num=str.toULongLong(nullptr,16);//数据类型转化
double data = *(double *)&num;
  • 具体的计算过程,参加下图讲解,下图分别讲解的是 32 位的float型转换与64位的double型转换。
  • 32 位的float型转换
    在这里插入图片描述
  • 64位的double型转换
    在这里插入图片描述

小结

  学习,加油,共勉。

标签:知识点,Qt,double,num,quint64,str,num1Str,GPIB
From: https://blog.csdn.net/weixin_42269028/article/details/143194202

相关文章

  • QtCreator通过CMake多文件编译.cpp、.qss、.h、.ui文件,达到MVC三层架构的效果
        博主在构建C++项目的时候,一般都喜欢将头文件和源文件分开为不同的文件夹,比如include目录下只存放.h文件和.ui文件,src目录下只存放.cpp和.qss文件,res目录下只存放图片、音频等文件,这时候使用CMake对项目进行分文件管理就特别方便和清晰了。  很多人写qt项目的......
  • 【软考中级笔记】软件设计师易混知识点归纳
    一、计算机系统1.1计算机硬件1.2计算机软件1.软件可靠性、可维护性、可用性计算软件可靠性指标公式可靠性:MTTF/(1+MTTF)可用性:MTBF/(1+MTBF)可维护性:1/(1+MTTR)MTTF(MeanTimeToFailure)平均无故障时间MTTF=∑T1/NMTTR(Meantimetorepair)平均修复时间MTTR=∑(T......
  • 如何在Qt框架中使用C++进行跨平台开发
    摘要:使用Qt框架结合C++实现跨平台开发的要点涉及1、选择合适的Qt版本及工具集、2、掌握QtCreator与Qt库的使用、3、深入理解信号与槽机制、4、遵循模块化和解耦的设计原则、5、依据不同平台进行特定优化。特别地,掌握QtCreator与Qt库的使用是基础,该集成开发环境(IDE)包含了代码编辑......
  • [QT基础系列]按钮QPushButton
    按钮QPushButton属性和方法、案例文本可以获取和设置按钮上显示的文本//获取和设置按钮的文本QStringtext()constvoidsetText(constQString&text)图标可以获取和设置按钮上显示的图标//获取和设置按钮的图标QIconicon()constvoidsetIcon(constQIcon......
  • [QT基础系列]窗口QWidget
    QWidget所有窗口类的基类Qt中有3个窗口的基类:QWidget、QMainWindow、QDialog在创建Qt工程时,会让我们选择继承自哪一个窗口类其中,QMainWindow、QDialog都是继承自QWidge所有控件类的基类Qt中的控件类(按钮、输入框、单选框等)也属于窗口类它们的基类也是QWid......
  • [QT基础系列]标签QLabel
    标签QLabelQLabel是Qt中的标签类,通常用于显示提示性的文本,也可以显示图像文本可以获取和设置按钮上显示的文本//获取和设置显示的文本QStringtext()const;voidsetText(constQString&text);对齐方式用于设置标签中的内容在水平和垂直两个方向上的对齐方式......
  • QtCreator开发工具
    视图及分栏项目视图文件系统视图书签视图ctrl+m添加书签编辑区打开文档列表类列表分栏常用快捷键使用键盘模拟鼠标操作代码编辑Ctrl+[Shift]+Enter在当前行的下方[上方]插入空白行Ctrl+l[;]代码对齐[格式化]Shift+Delete剪切当前行,可以当做删除用Ctrl+/......
  • 实现Qtextedit控件大小改变时候希望不重新绘制
    实现Qtextedit控件大小改变时候希望不重新绘制4.备选方案5.完整示例6.总结要在QTextEdit控件大小改变时防止其重新绘制,可以通过创建一个自定义的QTextEdit子类,并重载相关事件来控制绘制行为。以下是实现这一目标的详细步骤和示例代码:创建自定义的QTextEdit......
  • 专利申请前一定要知道的20个知识点
    1、专利有三种类型:发明专利、实用新型专利、外观设计专利,发明专利价值度最高。2、专利权人=申请人,拥有处置专利的权利,专利权是一种财产权。3、专利权人/申请人可以是个人也可以是单位。4、发明人一定是个人,是对发明创造做出智力贡献的个人,发明人可以是多人,第一发明人最重......
  • 如何在QT5+MinGW环境中编译使用Marble开发地图地球仪
    Marble它是一个虚拟地球仪和地图应用程序,支持多种平台。Marble提供2D和3D的地图视图,能够展示各种地理信息,像卫星图、街道图、气象图等。它还支持自定义插件、路线规划、离线地图等功能,适合地理信息系统(GIS)和教育用途。Marble有多种使用场景,可以集成到Qt应用中。你......