论坛» 嵌入式开发» MCU

使用MDK3.80编译调试STM32的问题

菜鸟
2015-01-13 16:46 1楼

最近在产品测试中发现总有一个数值对应理论值不对,经单步调试发现固定值直接除以32767与固定值右移15位所得的结果不同,如下:

Var_Reg[0]=(INT32S)(200*0xDFF0) / 32767.0;

Var_Reg[1]=(INT32S)(200*0xDFF0) >>15;

第一个式子所得的结果是-50;而第二个结果得到的结果竟是-51;

请求各位大侠帮忙释疑!

专家
2015-01-13 18:17 2楼
可能是除不尽的, 编译器有的时候会四舍五入。
专家
2015-01-13 18:51 3楼

>>15 为2^15=32768

数组零为37767

我按照16进位数计算不出来是-50 -51

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]