28楼的方法是好,但实际中不好用,如只保存1000张卡就可以了,一般每张卡保存4个字节,只要4K字节存储器就够用了,但按28楼的方法即使每张卡保存18位,也就是要2的18次方=262144个位,要32768个字节才能保存.
楼主是只比较1000张卡,其实可以不用什么算法也就很快比完数据,我做过实验,就是保存了8000张卡(每张卡保存4个字节的数据)在FLASH中,用51MCU,44MHZ的晶振,读数据和比较完8000张也就用了不到1.5S的时间.方法就是(读一个字节比较一个字节,而不是一次读完4个字节后再比较,比较数据时从最低一个字节的数据开始,这样可以省下很多时间)先读存储器中保存的第一张卡的最低一个字节的数据,而后和刚才读到卡的数据最低一个字节比较相等,而后继续读卡剩下的字节,一直到比完4个字节的数据.只要其中一个字节不相等就直接读存储器中的第二张卡的数据,一直到读完8000张卡为止. |