最近写了一个算法公式。尝试了三种写法。如些
int32_t T;
int32_t dT; //这个数值为378021
uint16_t C[8]; //C[6]数值为27784
//情况1
T = ((int64_t) dT * C[6]) ; //调试的时候,此时T=1913000872
T= T/8388608; //调试的时候,此时T=228
//情况2
T = ((int64_t) dT * C[6]) / 8388608; //调试的时候,此时T=1252
//情况3
T = ((int64_t) (dT * C[6])) / 8388608; //调试的时候,此时T=228
结果情况2,算出来T是错误的。这是为何?求高手指教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
可是结果1和3才是我要的结果。我手动算了下。1和3的结果是对的
是我错了。你是对的。没考虑溢出
一周热门 更多>