使用的CCS3.3,芯片是2812,做两个32位数的乘法,结果总是不正确,可以确定不是因为溢出产生的错误。有没有人遇到过类似的情况。
关键部分代码如下:
long long a;
long long b;
long long C;
a = (int64)U;
b= (int64)I;
C = a * b;
U和I是型参,32位无符号整数。测试中U=229777,I =679190,用window的计算机算的值是156062240630,这个值应该是对的。乘数其中一个是10 的整数倍,积应该也是的。而上述代码算出来的结果是157505658604,这个值显然不对,但是有点儿接近正确值,不知道该如何解决
