当前位置: 首页 > article >正文

QT C++ modbus 两个字 合成 32位整数

在项目开发中,从传感器读到2个字,高字在前,低字在后,本文用两种方法,将两个字顺序交换,转换为32位整数。

方法一:用联合体

方法二:位移动


#include <QApplication>

#include <QDebug>
 

union int32Split
{
    int int32Value; // 32位整数
    struct
    {
        unsigned short  word0;
        unsigned short  word1;
    } sInt32Values;      
    unsigned short Uint16Array[2];
};

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   
    int32Split c,c2;
    c.Uint16Array[1]=65535;//
    c.Uint16Array[0]=65533;
    qDebug()<<c.int32Value;
    //-------------------
    c2.int32Value=-3;
     qDebug()<<c2.Uint16Array[1];
     qDebug()<<c2.Uint16Array[0];
     //------------------- 
    int c3,c4;
    c3=65535<<16;//左移16位
    c4=c3 | 65533;//位或运算
    qDebug()<<c4;
     //------------------
    unsigned short d1=c4>>16;//右移16位
    unsigned short d2=c4 & 0xffff;//位与运算
    qDebug()<<d1;
    qDebug()<<d2;
    return a.exec();
}


http://www.kler.cn/a/552177.html

相关文章:

  • openCV中如何实现滤波
  • 基于Electron+Vue3创建桌面应用
  • 3.10 企业级AI内容生成引擎:从策略到落地的全链路技术指南
  • 调用openssl实现加解密算法
  • Linux升级Anacodna并配置jupyterLab
  • Github 2025-02-18 Python开源项目日报 Top10
  • 电脑网速慢怎么解决?提升脑网速的办法
  • Linux Socket编程:TCP开发指南
  • 【网络安全 | 漏洞挖掘】我是如何通过搜索JS文件发现存储型XSS漏洞的?
  • MySQL基本操作——包含增删查改(环境为Ubuntu20.04,MySQL5.7.42)
  • 设计模式--中介者模式【行为型模式】
  • 亚远景-ISO/PAS 8800:2024《道路车辆—安全和人工智能》简介
  • 机器视觉中的3D高反光工件检测
  • [M二分] lc2080. 区间内查询数字的频率(模拟+二分+数据结构+Go二分库函数+知识总结)
  • 认识 ADB(Android Debug Bridge,Android SDK 中的一个工具)
  • C#功能测试
  • 使用Python的OpenCV视觉库和MediaPipe面部检测模型和姿态检测模型深度学习框架来实现眼动检测和姿态检测
  • JavaScript数组-获取数组中的元素
  • AWS CodeBuild 配置完整指南
  • 【Viper】文件、Etcd应用配置与配置热更新,go案例