微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 浅谈C语言的一个算法

浅谈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系统资源。呵呵,何乐而不为?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top