数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2640|回复: 16

[Arduino] 运算π值,对比一下

[复制链接]
发表于 2020-4-15 11:19:59 | 显示全部楼层
实际上pi完全可以用简单分数拟合pi=355/113,精度足够了。这个分数算出来是小数,但是可以对分子进行放大比如说10000倍甚至更高,再乘以放大后的半径,就可以得到放大若干倍的周长或者面积。这时候直接做输出就行了,避免浮点运算。
运算变量可以用long int,或者说是uint32,long long int或者是uint64,比浮点快了不知多少。浮点的拆装,尾数对齐,阶码修正,都要花费很多时间。

打赏

参与人数 2家元 +23 收起 理由
人艰不拆了 + 5
2545889167 + 18 是的

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:25:38 | 显示全部楼层
人艰不拆了 发表于 2020-4-15 11:21
我就是要看看浮点速度啊,vb程序加载时就直接给出π值了,完全不用算,这个是算着玩的 ...

浮点速度不用看,直接看浮点库的代码就行了。
比如说写这样的函数:
float fadd(float X, float Y)
{
    return X+Y;
}
然后看反汇编这个函数调用的固化浮点库函数,看看编译器内的固化浮点计算方法是什么样的就知道大概有多快了。这样你就知道计算浮点加法大概是个什么复杂度。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-16 10:40 , Processed in 0.202801 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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