这个是一个电机驱动里面抠出来的。

/*! \brief Square root routine.STM32-72M主频耗时2.5us** sqrt routine 'grupe', from comp.sys.ibm.pc.programmer* Subject: Summary: SQRT(int) algorithm (with profiling)*    From: warwick@cs.uq.oz.au (Warwick Allison)*    Date: Tue Oct 8 09:16:35 1991**  \param x  Value to find square root of.*  \return  Square root of x.*/
unsigned long sqrt(unsigned long x)
{register unsigned long xr;  // result registerregister unsigned long q2;  // scan-bit registerregister unsigned char f;   // flag (one bit)xr = 0;                     // clear resultq2 = 0x40000000L;           // higest possible result bitdo{if((xr + q2) <= x){x -= xr + q2;f = 1;                  // set flag}else{f = 0;                  // clear flag}xr >>= 1;if(f){xr += q2;               // test flag}} while(q2 >>= 2);          // shift twiceif(xr < x){return xr +1;             // add for rounding}else{return xr;}
}

转载博主的,原文连接:https://blog.csdn.net/zmazon/article/details/8217866

float SquareRootFloat(float number)
{//STM32-72M主频耗时8uslong i;float x, y;const float f = 1.5F;x = number * 0.5F;y = number;i = * ( long * ) &y;i = 0x5f3759df - ( i >> 1 );y = * ( float * ) &i;y = y * ( f - ( x * y * y ) );y = y * ( f - ( x * y * y ) );return number * y;
}

这个是转一个博主的,误差有点大,但是很快。原文连接:https://blog.csdn.net/xh270984572/article/details/72189457

float sq(float f)
{  //快速开方,STM32-72M主频耗时1.3usint o =((( ( *( (int*)&f ) )^0x00800000 )>>1)&0xbfffffff)+0x20000000;if((o&0x00400000)>0)o-=0x00800000;return (*((float*)&o));
}

单片机快速开根号函数相关推荐

  1. java开根号函数_Java中真的只有值传递么?

    原创: ITwalking 转载于公众号[ 编程大道] (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法 ...

  2. python开根号函数图像,使用matplotlib / python的平方根刻度

    I want to make a plot with square root scale using Python: However, I have no idea how to make it. M ...

  3. 单片机快速开平方的算法

    C语言中开平方的算法中要开平方的话,可以在头文件中加#include <math.h>.然后调sqrt(n);函数即可.但在单片机中要开平方.可以用到下面算法: 算法1: 本算法只采用移位 ...

  4. 【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片

    目录 硬知识 概述 特性 功能描述 报警功能模式 定时器模式 CLKOUT输出 复位低电压检测器和时钟监视器 低电压检测器和时钟监视器 寄存器结构 寄存器概述 BCD编码格式寄存器概述 Control ...

  5. 【51单片机快速入门指南】5.3:SPI控制晶联讯JLX12864G_08602 LCD屏幕

    目录 示例程序 JLX12864G_08602.c JLX12864G_08602.h JLX12864G_08602_Font.c JLX12864G_08602_Font.h 测试程序 main. ...

  6. 【51单片机快速入门指南】2:GPIO LED与按键

    目录 硬知识 概念 I/O口配置 准双向口/弱上拉输出配置 开漏输出配置 实战 延时函数的生成 闪烁一个LED灯 源码 实验现象 流水灯 源码 实验现象 按键控制LED灯 按键介绍 源码 实验现象 普 ...

  7. maya python 开根号_maya python

    胡泳滨MayaPython简易教程,如需转载,请标明出处地址: http://huyongbin.blogbus.com/c3363976/ 谢谢配合! MayaPython第一篇 - 介绍 大家好, ...

  8. 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解

    目录 硬知识 SSD1306简介 I2C 接口 从机地址位(SA0) I2C 总线写数据 命令解码器 晶振电路和显示时间发生器 复位 图形显示数据RAM (GDDRAM) 命令表 基本命令表 部分指令 ...

  9. 单片机快速开方 -- 整数开方

    说明:这是一个整数开方函数,返回结果也是整数. 问题:用51单片机采集ADC,交流电,然后进行均方根求有效值,开方调用 #include <math.h> float sqrt (floa ...

  10. 经典面试题:如何快速求解根号2?

    关注下方公众号,分享硬核知识 作者 | 小K 出品 | 公众号:小K算法 (ID:xiaok365) 01 故事起源 有一次小K去面试,面试官问我怎么求解根号2,这还用求,不就是1.414... 原来 ...

最新文章

  1. HTML5路由和PJAX
  2. 实用代码-C#之IP地址和整数的互转
  3. 美国AI公司30亿人脸数据被黑,遭科技巨头联合“封杀”
  4. 认识div(division)在排版中的作用
  5. java web mvc spring_Java下Web MVC的领跑者:SpringMVC
  6. 软件工程期末设计(校园教务系统)
  7. 人工智能之-产生式系统
  8. 数学建模——评价模型之层次分析法
  9. 这也许是史上最有趣的破解软件合集
  10. el-table合并单元格的方式
  11. OA新增百亿市场,蓝凌、钉钉靠“智能OA”占稳C位
  12. CSDN上传资源提示:资源上传中断
  13. 让你的2003和xp一样好用
  14. dockerUI工具的搭建
  15. 快速用户体验研究方法
  16. 【微信小程序】版本更新提示
  17. 汤晓丹的第四版计算机操作系统--第八章总结概述
  18. RealNetworks vs. 微软:早期流媒体行业之争
  19. 小米5s信号测试软件,信号覆盖整个足球场!小米官方发布AX6000测试
  20. 【必备干货】通用单运放调零电路

热门文章

  1. 阿里云服务器搭建java环境详细步骤4
  2. 大数据可视化工具-大屏展示
  3. zigbee网关数据到json格式
  4. 三星手机PIN码忘记锁机解决方法
  5. vue+element+springboot前后端分离项目整合pageoffice实现在线编辑Word和Excel跟签章等
  6. 单相电能量计算机公式,电能与电压电流的关系及计算公式详解
  7. 逆变H桥IGBT单管驱动+保护
  8. 人月神话札记:提纲挈领
  9. 局域网屏幕共享_【宅家宝典】将手机屏幕搬上电视,只需解锁一个技能!
  10. 基于SSH的在线问卷调查系统的设计与实现