单片机能处理带根号的公式么?如何去除公式的根号?

2019-07-16 05:17发布

单片机能处理带根号的公式么?误差是不是会比较大?有没有什么办法去除公式的根号?或者减少单片机计算的误差
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
oyl
1楼-- · 2019-07-16 08:32
楼主能不能举个例子。。。
lstcspring
2楼-- · 2019-07-16 10:55
//------------------------------------------------------------------------------- -
/****************************************/
/*Function: 开根号处理 */
/*入口参数:被开方数,长整型 */ /*出口参数:开方结果,整型 */
/****************************************/
unsigned int sqrt_16(unsigned long M)
{
unsigned int N, i;
unsigned long tmp, ttp; // 结果、循环计数
if (M == 0) // 被开方数,开方结果也为0
     return 0;
N = 0;
tmp = (M >> 30); // 获取最高位:B[m-1]
M <<= 2;
if (tmp > 1) // 最高位为1
{
   N ++; // 结果当前位为1,否则为默认的0
   tmp -= N;
}
for (i=15; i>0; i--) // 求剩余的15位
{
   N <<= 1; // 左移一位
   tmp <<= 2;
   tmp += (M >> 30); // 假设
   ttp = N;
   ttp = (ttp<<1)+1;
   M <<= 2;
   if (tmp >= ttp) // 假设成立
   {
     tmp -= ttp; N ++;
   }
}
return N;
}
yyjm
3楼-- · 2019-07-16 13:52
 精彩回答 2  元偷偷看……
yyjm
4楼-- · 2019-07-16 19:42
lstcspring 发表于 2012-7-13 22:08
//------------------------------------------------------------------------------- -
/************** ...

单片机算出来的是不是整数?没有小数点?

一周热门 更多>