cqcwc 发表于 2016-6-17 16:08:22

在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:24

8位单片机,数据宽度是16BIT,超过宽度的数据是会丢失的

lankii 发表于 2016-7-6 20:31:56

要强制类型转换,要不然被优化掉
uint32_t a;
a=(uint32_t)x*(3300);
a=a/(uint32_t)1024;
页: [1]
查看完整版本: 在STM8中如何处理16位*16位计算?