英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 关于C18的乘法 [打印本页]

作者: winnie    时间: 2009-4-25 23:51
标题: 关于C18的乘法
我做2个int型的乘法时,结果放long型里,结果为什么只有后16位正确,有什么好的 解决 方法

我的是
比如
int a=0x8000;
int b=0x7000;
long c=a*b;
但C的结果只有后16位显示正确,为什么会这样?
作者: winnie    时间: 2009-4-25 23:52
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;

}




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2