Discuz! Board

标题: 在STM8中如何处理16位*16位计算? [打印本页]

作者: cqcwc    时间: 2016-6-17 16:08
标题: 在STM8中如何处理16位*16位计算?
STM8S难道不能进行16位*16位的计算???在IAR中,
计算结果错误的程序:
x=AD转换;
uint32_t a;
a=x*3300;
a=a/1024;
a算出来怎么都不对
后面改成
uint32_t a;
a=x*33;
a=a*100;
a=a/1024;

这样计算结果就是对的,这是怎么回事呢?


作者: admin    时间: 2016-6-17 19:27
8位单片机,数据宽度是16BIT,超过宽度的数据是会丢失的
作者: lankii    时间: 2016-7-6 20:31
要强制类型转换,要不然被优化掉
uint32_t a;
a=(uint32_t)x*(3300);
a=a/(uint32_t)1024;




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3