专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
求助,5个浮点数,找出中间值,最快速的算法(已解决)
2020-02-20 20:39
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
8124
49
49
本帖最后由 FSL_TICS_Robin 于 2014-11-27 10:29 编辑
求助,5个浮点数,找出中间值,最快速的算法。
我现在的实现是,5个值里面搜索到最大值,设置为0,
然后再搜索一遍最大值,设置0,
然后再搜索一遍这个最大值,为中间值。
但是比较慢,请帮忙指点实现快速的方法。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
lianglee
1楼-- · 2020-02-25 19:47
本帖最后由 lianglee 于 2014-10-13 13:47 编辑
quote]
maimaige 发表于 2014-10-13 12:28
请问,这个地方用无符号数的原因,如果用有符号数的话,会有什么问题? ...[/quote]
应该也不会有什么问题。
但是自己习惯上是这样,
例如:查表取得温度 值,
uchar Read_Temp_Tab(uint16 w_adc)
{
uchar i,temp;
for (i=0; i<sizeof(R_TAB); i++)
{
if(w_adc>=R_TAB[i+1])
{
temp=((w_adc-R_TAB
)*10)/(R_TAB
-R_TAB[i+1]); //取得温度值小数。
if(temp>4) // 摄氏度,四舍五入。
{
i+=1;
}
break;
}
}
return i;
}
如果这个R_TAB表的长度为200的时候,用无符号数,一个字节(8Bit)就可以了。
如果你用有符号的话,那就需要用16(Bit)的变量来表示。
加载中...
REVBER
2楼-- · 2020-02-25 21:33
帮顶了!!!
加载中...
xly
3楼-- · 2020-02-26 00:10
1、浮点转为整数
2、按大小排列,去掉两个最大,与两个最小,剩下的就是中间值
加载中...
dzlt2012
4楼-- · 2020-02-26 01:03
tam2907 发表于 2014-10-11 16:49
先任意三数比较抛掉两头,取中间值与剩下两数比较抛掉两头
你这个方法是错误的
加载中...
Lengxue
5楼-- · 2020-02-26 02:15
精彩回答 2 元偷偷看……
加载中...
woaidamimi
6楼-- · 2020-02-26 04:24
tam2907 发表于 2014-10-11 16:49
先任意三数比较抛掉两头,取中间值与剩下两数比较抛掉两头
假设 5个数就是 1 2 3 4 5
1 2 3 比较抛掉两头得 2
2 4 5 比较抛掉两头得 4
加载中...
上一页
1
2
3
4
5
6
7
8
下一页
一周热门
更多
>
相关问题
手把手学会例程系列:i.MX<二>:图解i.mx53源码补丁+烧录(...
59 个回答
从零开始MQX开发之二 创建与调试MQX项目
24 个回答
7009: Trim value invalid, value is blank or zero是什么错误
0 个回答
怎么头像消失啊?
23 个回答
求推荐KINETIS评估板:必备USB HS,ETHERNET
5 个回答
快点围观,USB 2.0协议资料分享
99 个回答
求助:PE中如何使用MK10DX256VMC7!(已解决)
12 个回答
希望来点MQX相关的教程资料。
12 个回答
相关文章
基于IMX6Q移植uboot2018-09——添加单板
0个评论
IMX6UL定时器按键消抖实验
0个评论
I.MX6U处理器LED灯点亮汇编程序代码编写
0个评论
在NXP I.MX6上做一个基于Opencv和OpenGL的打砖块游戏
0个评论
【RFID安全】浅谈卡片破解
0个评论
LM75a
0个评论
emwin字库制作及汉字显示
0个评论
STM32学习之I2C
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
NXP
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
quote]maimaige 发表于 2014-10-13 12:28
请问,这个地方用无符号数的原因,如果用有符号数的话,会有什么问题? ...[/quote]
应该也不会有什么问题。
但是自己习惯上是这样,
例如:查表取得温度 值,
uchar Read_Temp_Tab(uint16 w_adc)
{
uchar i,temp;
for (i=0; i<sizeof(R_TAB); i++)
{
if(w_adc>=R_TAB[i+1])
{
temp=((w_adc-R_TAB)*10)/(R_TAB-R_TAB[i+1]); //取得温度值小数。
if(temp>4) // 摄氏度,四舍五入。
{
i+=1;
}
break;
}
}
return i;
}
如果这个R_TAB表的长度为200的时候,用无符号数,一个字节(8Bit)就可以了。
如果你用有符号的话,那就需要用16(Bit)的变量来表示。
2、按大小排列,去掉两个最大,与两个最小,剩下的就是中间值
你这个方法是错误的
假设 5个数就是 1 2 3 4 5
1 2 3 比较抛掉两头得 2
2 4 5 比较抛掉两头得 4
一周热门 更多>