你是不是觉得开平方直接调用C或Matlab内置sqrt就可以呢?这不是多此一举吗?

但是写单片机高速算法时,遇到你的算法周期总是快不起来呢?显示总卡屏呢?你机器总是很笨,反映不过来呢?没错,你的主体计算思路也许没错,就是卡在你调用的sqrt等函数上了,计算你的主体已经难以再精简了,那就有必要逐个有优化算法了.

比如:正余弦函数等,系统内置的都是泰勒展开式式计算

根据你需要选择合适的阶数嘛!非常正确,其它的呢?用泰勒原式嘛

没错,我们的开平方也可以用泰勒展开式计算

因此泰勒开平方根的代码如下:

// c++ code
double ans=1, pre=0;
while(abs(ans-pre)>1e-6)

{
    pre=ans;
    ans=(ans+x/ans)/2;
}

这个精度有点高,可以算,但是这个也不是最快嘛!

本笔者用我们单片机最擅长的移位算法,分别得出两周计算步数最少的开整数方根的算法:

sqrt1(unit16 data)//快速开方
{unit16  pbta;
pbta=data>>1;
while(pbta^2>data)
{pbta=pbta>>1;
}
while(pbta^2<data)
{pbta++;
}
return pbta;
}
//bitshit(num,n)

再次申明,此算法仅仅适合于整数开整数方根,对精度要求高的高手,请用前面的算法.

解释权归"外号:十大爷",哈哈.

适合32位及以下的单片机的开平方算法相关推荐

  1. JavaScript实现判断32位的数字是否为正数isPositive算法(附完整源码)

    JavaScript实现判断32位的数字是否为正数isPositive算法(附完整源码) isPositive.js完整源代码 isPositive.js完整源代码 export default fu ...

  2. CH32F203C8T6 32位增强型低功耗Cortex-M3单片机

    CH32F203系列是基于32位Cortex-M3内核设计的工业级增强型低功耗通用微控制器,高性能,最高支持144MHz系统主频,低功耗,最高系统主频下运行功耗低至69uA/MHz.CH32F203集 ...

  3. 国产高性能32位M0内核MCU单片机DP32G003

    DP32G003TS20内嵌ARM Cortex M0 内核,最高工作频率可达48MHz,内置高速存储器,丰富的增强型IO端口和外设连接到总线.本产品包括16路IO.1个(9 通道)12位的ADC.2 ...

  4. 台式计算机32位和64位的区别,电脑系统32位和64位有哪些区别 32位和64位是什么意思 【详解】...

    我们在安装系统的时候,需要了解的东西太多了,比如选择系统的话你首先要了解是选择32位还是64位系统呢?然后还需要判断电脑适合32位还是64位系统?这些问题要折腾清楚之后才能更好的进行安装,今天小编带大 ...

  5. ESET(NOD32) ESS/EAV 4.0.424.0 BE 32位 汉化正式版

    ESET(NOD32) ESS/EAV 4.0.424.0 BE 32位 汉化正式版 ESET这一名称最早来源于埃及神话中的女神Isis.Isis又称作Aset或Eset,是地神Geb和天神Nut的女 ...

  6. 电脑系统32位和64位有哪些区别?32位和64位是什么意思 ?

    我们在安装系统的时候,需要了解的东西太多了,比如选择系统的话你首先要了解是选择32位还是64位系统呢?然后还需要判断电脑适合32位还是64位系统?这些问题要折腾清楚之后才能更好的进行安装,今天带大家了 ...

  7. 操作系统32位和64位是什么意思?

    目录 一.32位和64位到底是什么意思 二.从寻址能力来了解32位和64位系统 三.从软件兼容性来了解32位和64位系统 四.从系统体积大小来了解32位和64位系统 五.64位电脑如何换32位系统? ...

  8. 分享一款电机控制国产32位单片机MM32SPIN360C

    国产32位单片机MM32SPIN360C拥有M0内核的高性能32位微控制器,5V输出的LDO稳压器.三组具备有自举二极管的N通道半桥栅极驱动器.MCU最高工作频率可达96MHz,并内置SRAM高速存储 ...

  9. 灵动微32位单片机LQFP64引脚MM32F3273G7P

    灵动微MM32F3273G7P采用ARM®Cortex®-M3内核的高性能32位单片机,工作频率高达120兆赫兹,内置512KB Flash和128KB RAM的高速存储器,具有丰富的I/O端口和外设 ...

最新文章

  1. Hive mac 客户端工具DbVisualizer配置
  2. UA OPTI570 量子力学34 Harmonic Perturbation简介
  3. 微型计算机硬件采用什么,微型计算机的硬件系统包括什么?
  4. No services have been found解决方案
  5. junit5 动态测试_JUnit 5 –动态测试
  6. 字符串、数组、集合在使用时出现空指针怎么办?_03
  7. python实现单链表快速排序升序linkedqueue_数据结构回顾
  8. cesium 加载科技感
  9. Java语言编写一个简单彩票机的程序
  10. radon变换(c++、OpenCV实现)
  11. 定义Employee类(1)该类包含:private成员变量name,sal,birthday,其中birthday为MyDate类的对象;(2)为每一个属性定义getter,setter方法
  12. (连载)Android 8.0 : 系统启动流程之Linux内核
  13. 翻译 Duckietown an Open, Inexpensive and Flexible Platform for Autonomy Education and Research
  14. css父相子绝 导航,CSS中的父相子绝布局
  15. **传统线上支付 区块链**
  16. Codeup——577 | 问题 C: 等腰梯形
  17. 王者荣耀改名神器助手微信小程序源码下载,支持流量主模式
  18. 移动支付线下大战,支付宝还能做什么
  19. window子系统 linux wsl ubuntu GUI 可视化ubuntu桌面
  20. Rhino6安装Weaverbird

热门文章

  1. 5分钟上手视频压缩神器:HandBrake
  2. (JZ4245)2019.01.29【NOIP提高组】模拟B组 1.er(混沌与秩序)
  3. 基于RNN循环神经网络lstm的藏头诗制作
  4. 心电远程监护与云计算
  5. 实验一:网络扫描与网络侦查
  6. 由浅到深的操作系统学习
  7. linux qt “QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enable“
  8. 安装鸿蒙开发工具提示Error: Cause: Failed to execute the task
  9. Zotero 导入中文数据库文献(知网、百度学术、万方和维普数据)
  10. Linux 下 Redis 安装常见问题及解决方案