找回密码
 注册
关于网站域名变更的通知
查看: 465|回复: 1
打印 上一主题 下一主题

大神大神:单片机的浮点的运算要怎么处理?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-9 09:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
请问exp()函数输入输出都是浮点数,计算的最终结果要一个整数。; I( _* i6 d; _& E# E1 C+ z6 x2 x
请问要始何做才能得到正确的结果。下面的程序一得出的数值不正确。. o  m# D+ o7 ~# Q
公式在下图。" |+ u5 ~8 @- S! f8 T4 D; m7 r+ E* G
#include <math.h>  q1 [, v9 ~0 g
#defind  FOSC/2/11059200! t7 Y/ o. C* O' v! @& h2 S
unsigned int Int_value;
) }0 n2 |, F  k1 R4 |. J; Lunsigned int Int_i;, ?* w5 `* Z/ {7 x. B
for((Int_i=0; Int_i < 1000; Int_i++)
) Q7 p6 |$ ^( X1 c% E{
! P, B3 y4 s2 H$ t4 G6 TInt_value=(unsigned int)(1600+(5304-1600)/(1+(exp(-5*(Int_i-500)/500)))$ g, }# B' j# y" {3 K9 b* {
}) M2 a1 u* {( l4 D

. S* ]7 K* R; x$ l! S2 {. A! \- f0 `6 R- K2 U0 D
) q$ q" n1 d) J; Q9 |. N- K
$ C  j* y' d$ Y1 q3 R

  p( M! u) k" |6 c6 C  E# K
9 J. \( {) H! {. {. A

该用户从未签到

2#
发表于 2021-9-9 10:25 | 只看该作者
$ m* ~6 I4 }) g# g) d6 X
Int_i的类型是无符号$ `' F! j; h3 V# U
Int_i-500这一步会等于65536-500=65036* Y2 Z( W) F2 s* K

. Y! F) n# s, ?8 O8 G, f应改作& e/ x6 L* G: [/ s* l5 I9 P
Int_value=(unsigned int)(1600+(5304-1600)/(1+(exp(-5*(((float)Int_i-500)/500)))));
0 i2 k) h4 A/ X, K0 _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-23 05:33 , Processed in 0.093750 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表