因项目中有一个需求:将采集到所有short int 转换成float型,而且int的后四位是float的小数段,前8位是float的整数段
例如采集到一个 qint16 m = 0x1234,我们需要把0x123.4(假设这样写),真正的float值为291.3999
QTime t;
t.start();
qint16 m = 0x1234;
qint16 m1;
qint16 m2;
float n;
for(int i = 0; i < 62500000;i++)
{
m1 = m >>4;//向右移四位
m2 = m & 0x000F;//获取最后四位的值
n = m2*0.1;//将最后四位的整型值转成float
n = m1 + n;//获得最终结果
}
qDebug("Time elapsed: %d ms", t.elapsed());