winnie 发表于 2009-4-25 23:51:07

关于C18的乘法

我做2个int型的乘法时,结果放long型里,结果为什么只有后16位正确,有什么好的 解决 方法

我的是
比如
int a=0x8000;
int b=0x7000;
long c=a*b;
但C的结果只有后16位显示正确,为什么会这样?

winnie 发表于 2009-4-25 23:52:02

L=A;L*=B;
数值类型转换问题。

L=A;L*=B;大概就可以了


通过的结果
unsigned int a=0x8000;

unsigned int b=0x7000;



void main(void)
{
unsigned long int c;
c=(unsigned long int)a*b;

}
页: [1]
查看完整版本: 关于C18的乘法