你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8l151 我想运行开根号,但是报错,求教

[复制链接]
莫九玉 提问时间:2018-8-31 15:17 /
本帖最后由 莫九玉 于 2018-8-31 15:20 编辑

我使用stm8l151.。
我想运行sqrt(4000*4000);但是编译提示“Warning[Pe061]: integer operation result is out of range ” 。说超出了范围,有什么办法可以解决呢?我想开根号的数很大。

我使用stm8l151执行sqrt(4*4);执行没问题。
我使用stm32l476执行sqrt(4000*4000);没问题。




收藏 评论3 发布时间:2018-8-31 15:17

举报

3个回答
wenyangzeng 回答时间:2018-8-31 15:40:28
本帖最后由 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受不了!!

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wudianjun2001 回答时间:2018-8-31 15:30:26
看看sqrt函数的定义,输入参数是不是有限制

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

莫九玉 回答时间:2018-8-31 16:42:07
wenyangzeng 发表于 2018-8-31 15:40
1、不应该用实数进行运算;
2、由于STM8属8位机,至少分2步计算,而且开方不能用整数运算

谢谢,已经修改,我把他们整体除以100,然后就可以了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结帖奖励

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版