[讨论]如何取得一个32位无符号整形数的最高位——测试环境的搭建 (how to get the first digit of an int number with c language)
由于平时的工作环境为嵌入式系统,因此,此次算法的测试平台选用嵌入式微处理器平台——LM3S811平台。此次即使用自行设计的LM3S811开发板。
软件开发IDE选用IAR EWARM 6.3版本,使用标准C语言编写算法。
测试流程为:选用不同长度10组32位无符号型整数 Int32U i[10]做为测试对象。使用Cortex-M3系统自带的systick来计数,进入算法前输出systick的counter值,算法结束后输出systick的counter值。通过比较counter值的大小,来确定算法的优劣性。
具体实现框架:
注:Cortex-M3架构下的systick说明,systick为一个简单的定时器,主要用于RTOS的时间节拍,当然也能应用于简单的计时功能。其启动后,计数器以系统时钟的频率减少,并自动清除中断。因此,counter值的差即为算法的消耗时间单位。