浅谈C语言的一个算法
时间:08-29
来源:互联网
点击:
周六与周日花费了两天的时间得出一个转复杂较为简单的算法,其实都是学校里学过的,但由于没有应用于实际当中。
下面具体的来说说这个算法吧。
举个例子,比如有这么一个一维数组,共有96个元素,我想分成32列,3行,又想分成16列6行,而且想要分别从行与列的头开始取表元素,例tab[]={0x08,0xa0,.......,0xff};(可能你会想到分成多维数组,然后采用两个for循环,如for(int i=0;i3;i++)
{
for(int j=0;j32;j++)
tab[i][j];
}
但还是不够灵活)
怎么样灵活的改变呢?总不可能列两个数据表吧?我苦思瞑想了两天,找了老书。最终用了个移位的办法。先是从它的数组表里取其元素量,再做移位与加减运算,
我做了个测试,其结果相当的好。见图
这样可以取表的大小,改变a,b,4,5,的值。来得到想要的结果。这个可以独立成一个小的子程序。这个编译出来的文件也相当的小,适用于元素表较大的选取。有时候语句短并不是什么优势(在单片机当中)适合机器读的语句才是好语然,2+2与2*2谁优谁劣?机器晓得,相信,你懂的。。。。。。如果能省去循环语句占用MCU系统资源。呵呵,何乐而不为?
- 基于TMS320C62X DSP的混合编程研究(07-12)
- 语音识别及其定点DSP实现(06-14)
- C语言编译过程中的错误分析(08-25)
- 单片机的图形化编程方法分析(05-03)
- 基于数字信号处理器的汇编程序优化方案(03-24)
- C语言在FPGA上实现DSP的解决方案(04-09)