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

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3994|回复: 1
打印 上一主题 下一主题

关于C18的乘法

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-25 23:51:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做2个int型的乘法时,结果放long型里,结果为什么只有后16位正确,有什么好的 解决 方法

我的是
比如
int a=0x8000;
int b=0x7000;
long c=a*b;
但C的结果只有后16位显示正确,为什么会这样?
2#
 楼主| 发表于 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 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-30 17:40 , Processed in 0.051994 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表