参考:https://blog.youkuaiyun.com/a844651990/article/details/80653875
理论上来说:
如果保存的是字符串,如“123”,字节调用toint()
如果保存的是二进制(字节),可以使用QByteArray的toHex()后再toInt(),但是经过尝试发现,对于负数似乎没办法转化成功。
测试如下:
4个字节保存的数是0xffffff9c,对于int应该是-100,但显然转化失败了,
通过下面的位运算可以得到正确的int
//test:
QByteArray bt("bcde");
bt[0]=0xff;
bt[1]=0xff;
bt[2]=0xff;
bt[3]=0x9c;
qDebug()<<bt<<(uchar)bt.at(0)<<bt.toHex().toShort(nullptr,16)<<bt.toHex()<<bt.toHex().toUInt(nullptr,16)<<bt.toFloat();
int res=0;
res = (bt.at(0) << 24) & 0xFF000000;
res |= (bt.at(1) << 16) & 0x00FF0000;
res |= bt.at(2) << 8 & 0x0000FF00;
res |= bt.at(3) & 0x000000FF;
qDebug()<<res;
结果: