【QT】QT中串口得到数值怎么把两个16进制合并成一个低八位ie,一个高八位

xiaoxiao2021-02-28  95

//得到的串口的 Byte的数组

QByteArray handle_Data;

// 但是取出每个数据为 char类型,c++中可以直接转换为int类型

// byte0为高 8 位 int data1= (unsigned char)handle_Data.at(0); // 取出 对应位的16进制char型之后转换为16进制的int型(强制转换) // byte1为低 8 位 int data2= (unsigned char)handle_Data.at(1); // 取出 对应位的16进制char型之后转换为16进制的int型(强制转换) int data_sum= data1<<8|data2;//移位8位是一个字节 // 将16进制data_sum转换为string类型的10进制数便于在text上显示 QString data_string= QString::number(data_sum,10);

要注意的是 一个字节是8位,高位相当于是高八位,应该在位数上往左移之后或上第八位即可

第二种方法是 高八位乘次256+第八位转换为10进制也可以但是在QT中不是很方便还得转换一次string

转载请注明原文地址: https://www.6miu.com/read-36872.html

最新回复(0)