主页 > 软件开发  > 

QTC++modbus两个字合成32位整数

QTC++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(); }

标签:

QTC++modbus两个字合成32位整数由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“QTC++modbus两个字合成32位整数