①在DSP 2809中,我有以下执行语句:
long VinActualValue=3000;
int FixedDutyValue=361;
int VoutCalValue=0;
VoutCalValue=(VinActualValue*FixedDutyValue)/1000;
请问DSP在执行此条语句"VoutCalValue=(VinActualValue*FixedDutyValue)/1000;"时的顺序是什么呢?我能确定(VinActualValue*FixedDutyValue)/1000的值不超过int的长度.
猜想一:VoutCalValue=VinActualValue*FixedDutyValue;(int型乘以long型,会强制把int型转换成long型(正确否?),此条语句执行导致数据溢出)
VoutCalValue=VoutCalValue/1000;(运行结果出错)
猜想二:Temp=VinActualValue*FixedDutyValue;(Temp是DSP临时为语句执行分配的一个long型变量)
VoutCalValue=Temp/1000;(运行结果正确)