将有格式的int解析成float

因项目中有一个需求:将采集到所有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());

你可能感兴趣的:(转换,int,float)