//注意大小端
int MainWindow::byteAraryToInt(QByteArray arr, bool endian)
{
int res = 0;
if (arr.size() == 4){
if (endian == false)// 小端模式
{
res = arr.at(0) & 0x000000FF;
res |= (arr.at(1) << 8) & 0x0000FF00;
res |= (arr.at(2) << 16) & 0x00FF0000;
res |= (arr.at(3) << 24) & 0xFF000000;
}
else // 大端模式
{
res = (arr.at(0) << 24) & 0xFF000000;
res |= (arr.at(1) << 16) & 0x00FF0000;
res |= arr.at(2) << 8 & 0x0000FF00;
res |= arr.at(3) & 0x000000FF;
}
}else if(arr.size() == 2){
if (endian == false){
res |= arr.at(0) << 8 & 0x0000FF00;
res |= arr.at(1) & 0x000000FF;
}else{
res = arr.at(0) & 0x000000FF;
res |= (arr.at(1) << 8) & 0x0000FF00;
}
}
return res;
}