电源设计技术实用资料点击免费获取>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [讨论]如何取得一个32位无符号整形数的最高位——测试环境的搭建

共8条 1/1 1 跳转至

[讨论]如何取得一个32位无符号整形数的最高位——测试环境的搭建

专家
2013-03-01 10:07:49    评分




[讨论]如何取得一个32位无符号整形数的最高位——测试环境的搭建 how to get the first digit of an int number  with c language

由于平时的工作环境为嵌入式系统,因此,此次算法的测试平台选用嵌入式微处理器平台——LM3S811平台。此次即使用自行设计的LM3S811开发板。

软件开发IDE选用IAR EWARM 6.3版本,使用标准C语言编写算法。

测试流程为:选用不同长度1032位无符号型整数 Int32U i[10]做为测试对象。使用Cortex-M3系统自带的systick来计数,进入算法前输出systickcounter值,算法结束后输出systickcounter值。通过比较counter值的大小,来确定算法的优劣性。

具体实现框架:


注:Cortex-M3架构下的systick说明,systick为一个简单的定时器,主要用于RTOS的时间节拍,当然也能应用于简单的计时功能。其启动后,计数器以系统时钟的频率减少,并自动清除中断。因此,counter值的差即为算法的消耗时间单位。




关键词: 讨论     如何     取得     一个     32位     无符号     整形     高位    

专家
2013-03-01 10:08:34    评分
2楼

欢迎大家多提宝贵的建议性建议!

采纳即送分~~


菜鸟
2013-03-01 10:27:36    评分
3楼
我还是顶上去好啦。。。- -

高工
2013-03-01 11:34:34    评分
4楼
楼主的算法就是获取

一个32位无符号整形数的最高位吧,这个复杂度如何,想必楼主已有成熟的方案,分享一下你的高见呗。


专家
2013-03-01 11:39:14    评分
5楼

你也想想呗

动动脑筋总归没有坏处的


助工
2013-03-01 12:30:44    评分
6楼
看来主要还是算法呀,O(∩_∩)O~ 

专家
2013-03-01 13:00:06    评分
7楼

在刚开始时,首先要实现为目的。只有实现,你的任务才算完成。


但是多数时候,程序的执行的好坏,也是需要算法的优化。


要一步一步严格要求嘛


工程师
2013-03-01 18:05:12    评分
8楼

无符号整数如果等于0,最高位为0;

如果无符号整数不等于0,最高的一位肯定是1啊.所以 i?1:0;即可。

楼主是否是要计算无符号整数的位数吧?

那么

unsigned char f(unsigned int i)

{

    unsigned char j=0;

   while(i){j++;i>=1}

  return j;

}

可以吗?

哪位有更快的算法?

这个花不了太多时间的,用来测试速度拉得开差距吗?


楼主,没下文了?


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]