智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1909|回复: 6
打印 上一主题 下一主题

[咨询] 求K60上面快速开方算法

[复制链接]

31

主题

509

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3671
威望
1728
贡献
923
兑换币
1150
注册时间
2013-1-14
在线时间
510 小时
跳转到指定楼层
1#
发表于 2013-4-15 09:06:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

如题,
求大神给出方案
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;  
}

这个程序太慢了

32

主题

978

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2834
QQ
威望
1620
贡献
482
兑换币
1009
注册时间
2012-11-29
在线时间
366 小时
2#
发表于 2013-4-15 10:16:06 | 只看该作者
#include "math.h"
A = sqrt(B);
回复 支持 反对

使用道具 举报

31

主题

509

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3671
威望
1728
贡献
923
兑换币
1150
注册时间
2013-1-14
在线时间
510 小时
3#
 楼主| 发表于 2013-4-15 13:39:52 | 只看该作者
dapan945 发表于 2013-4-15 10:16
#include "math.h"
A = sqrt(B);

那如何求InX呢?就是以e为底,求X的对数?
回复 支持 反对

使用道具 举报

3

主题

228

帖子

0

精华

高级会员

Rank: 4

积分
997
QQ
威望
559
贡献
220
兑换币
351
注册时间
2012-3-2
在线时间
109 小时
4#
发表于 2013-4-15 14:10:15 | 只看该作者
#include "math.h"
A =log(X);
回复 支持 反对

使用道具 举报

32

主题

978

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2834
QQ
威望
1620
贡献
482
兑换币
1009
注册时间
2012-11-29
在线时间
366 小时
5#
发表于 2013-4-15 15:57:57 | 只看该作者
我去你不会真让单片机去做这些东西吧
回复 支持 反对

使用道具 举报

31

主题

509

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3671
威望
1728
贡献
923
兑换币
1150
注册时间
2013-1-14
在线时间
510 小时
6#
 楼主| 发表于 2013-4-15 16:49:30 | 只看该作者
dapan945 发表于 2013-4-15 15:57
我去你不会真让单片机去做这些东西吧

是的,我采集回来的数据经行处理,需要这些函数,好在
Cortex-M4F内核里面有这样的处理单元,可以很容易实现。

回复 支持 反对

使用道具 举报

3

主题

228

帖子

0

精华

高级会员

Rank: 4

积分
997
QQ
威望
559
贡献
220
兑换币
351
注册时间
2012-3-2
在线时间
109 小时
7#
发表于 2013-4-16 09:34:46 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 17:28 , Processed in 0.107723 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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