stm8l151 我想运行开根号,但是报错,求教
本帖最后由 莫九玉 于 2018-8-31 15:20 编辑我使用stm8l151.。
我想运行sqrt(4000*4000);但是编译提示“Warning: integer operation result is out of range ” 。说超出了范围,有什么办法可以解决呢?我想开根号的数很大。
我使用stm8l151执行sqrt(4*4);执行没问题。
我使用stm32l476执行sqrt(4000*4000);没问题。
本帖最后由 wenyangzeng 于 2018-8-31 16:09 编辑
1、不应该用实数进行运算;
2、由于STM8属8位机,至少分2步计算,而且开方不能用整数运算
#include<math.h>
float x, result;
x=4000*4000;
result=sqrt(x);
3、4000*4000=16000000(0xf42400)STM8受不了!!
看看sqrt函数的定义,输入参数是不是有限制 wenyangzeng 发表于 2018-8-31 15:40
1、不应该用实数进行运算;
2、由于STM8属8位机,至少分2步计算,而且开方不能用整数运算
谢谢,已经修改,我把他们整体除以100,然后就可以了
页:
[1]