以下程序目的是计算 3.456*x.
CPU为;TMS320F2812
1、请问以下两种方法,哪种速度更快?
2、利用IQMATH算法计算的结果总差一个数,不知何原因?
long ad1,ad2;
浮点计算法:
long test1(long x)
{
float fvar1;
long var2;
fvar1=3.456;
var2=fvar1*x;
return var2;
}
IQMATH计算法:
long test2(long x)
{
long var1;
long var2;
var1=_IQ15(3.456);
var2=var1*x;
var2=var2>>15;
return var2;
}
ad1=test1(1000); 结果为3456 正确;
ad2=test2(1000); 结果为3455 差 1