本發(fā)明屬于按位存儲檢索方法,尤其設(shè)計一種用于一卡通設(shè)備中的按位存儲檢索方法。
背景技術(shù):
計算機(jī)內(nèi)部數(shù)據(jù)的存儲和運(yùn)算都采用二進(jìn)制,以8個比特位構(gòu)成一個字節(jié),在一卡通應(yīng)用中,一個交易卡號可能由幾個字節(jié)組成,例如:四字節(jié)的IC卡的物理序列號。
IC卡終端設(shè)備,在交易時,通信都需要以卡片的合法性做判斷,例如判斷卡片的卡號是否為白名單或黑名單;如果交易卡號在存儲器中是以按順序存儲的方法進(jìn)行存儲,則名單的檢索通常也采用順序存儲的方法,依次一個卡號一個卡號的讀取,之后進(jìn)行判斷,這種檢索方式的缺點是:當(dāng)名單量比較多時,檢索的時間通常也就比較長。
如果名單在存儲時,先經(jīng)過排序,之后在應(yīng)用時,如果需要對名單進(jìn)行檢索、判斷,因先經(jīng)過排序,故這種方法的效率通常很高。但其存在如下缺點:每增加或刪除一個名單,都需要對整個名單數(shù)據(jù)需要重新排序,并重新下傳名單至終端設(shè)備,故過于復(fù)雜,在校園應(yīng)用中,卡片的掛失,解掛基本上每天都會發(fā)生,故不便于校園一卡通這樣一個名單經(jīng)常發(fā)生變化的場合。
故針對上述缺陷,有必要研發(fā)一種用于一卡通設(shè)備中的按位存儲檢索方法。
技術(shù)實現(xiàn)要素:
本發(fā)明提出一種用于一卡通設(shè)備中的按位存儲檢索方法,其用于解決現(xiàn)有技術(shù)中一卡通設(shè)備名單檢索時間長及檢索過于復(fù)雜的缺陷。本發(fā)明存儲方式及檢索方式簡單方便快捷,其按BIT位存儲的方式,大大減少數(shù)據(jù)存儲量。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
本發(fā)明公開一種用于一卡通設(shè)備中的按位存儲檢索方法,其包括如下步驟:用于一卡通設(shè)備中的按位存儲檢索方法,其特征在于,包括如下步驟:
(1)計算一卡通設(shè)備的年發(fā)行量和總發(fā)行量Z,其中總發(fā)行量=年發(fā)行量*自然年度;
(2)按照BIT位存儲的方式,一個字節(jié)存儲一卡通設(shè)備的八個交易卡號,通過總發(fā)行量/8計算出總發(fā)行量在存儲中所占用的字節(jié)數(shù);
(3)通過步驟(2)中計算出的字節(jié)數(shù),得出保存總發(fā)行量Z所需名單需要的存儲器容量X;
(4)發(fā)行卡片,交易卡號由1開始,按照自然數(shù)的方式依次遞增;
(5)在存儲器中,根據(jù)一卡通設(shè)備的交易卡號Y計算出其在存儲器中的字節(jié)偏移地址N和在字節(jié)偏移地址N內(nèi)的BIT位M;
(6)通過字節(jié)偏移地址N和在字節(jié)偏移地址N內(nèi)的BIT位M計算出交易卡號的存儲位置。
其中,BIT位為0表示是有效名單,BIT位為1表示是無效名單;步驟(5)中的計算方法為:N=(Y-1)/8;M=(Y-1)%8。
優(yōu)選的,BIT位為0表示是無效名單,BIT位為1表示是有效名單;步驟(5)中的計算方法為:N=Y(jié)/8;M=Y(jié)%8。
其中,步驟(3)中存儲器容量X的計算方法為:X=Z/1024。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點:本發(fā)明通過將按位存儲檢索方法用于一卡通設(shè)備中,其能通過計算出每個交易卡號的字節(jié)偏移地址及其BIT位,迅速將交易卡號進(jìn)行存儲和檢索,大大減少了數(shù)據(jù)存儲量。
具體實施方式
下面對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明公開一種用于一卡通設(shè)備中的按位存儲檢索方法,其包括如下步驟:(1)計算一卡通設(shè)備的年發(fā)行量和總發(fā)行量Z,其中總發(fā)行量=年發(fā)行量*自然年度;(2)按照BIT位存儲的方式,一個字節(jié)存儲一卡通設(shè)備的八個交易卡號,通過總發(fā)行量/8計算出總發(fā)行量在存儲中所占用的字節(jié)數(shù);(3)通過步驟(2)中計算出的字節(jié)數(shù),得出保存總發(fā)行量Z所需名單需要的存儲器容量X;(4)發(fā)行卡片,交易卡號由1開始,按照自然數(shù)的方式依次遞增;(5)在存儲器中,BIT位為0表示是有效名單,BIT位為1表示是無效名單;根據(jù)一卡通設(shè)備的交易卡號Y計算出其在存儲器中的字節(jié)偏移地址N和在字節(jié)偏移地址N內(nèi)的BIT位M;(6)通過字節(jié)偏移地址N和在字節(jié)偏移地址N內(nèi)的BIT位M計算出交易卡號的存儲位置。
其中,步驟(5)中的計算方法為:N=(Y-1)/8(取模);M=(Y-1)%8(取余數(shù))。
其中,步驟(3)中存儲器容量X的計算方法為:X=Z/1024。
本發(fā)明在實際應(yīng)用過程中,步驟(5)中,本領(lǐng)域技術(shù)人員根據(jù)實際使用情況,可以在存儲器中設(shè)定BIT位為0表示是無效名單,BIT位為1表示是有效名單,則相應(yīng)的,在計算字節(jié)偏移地址N和在字節(jié)偏移地址N內(nèi)的BIT位M時,其計算公式為:N=Y(jié)/8(取模);M=Y(jié)%8(取余數(shù))。
以校園一卡通一年發(fā)行3萬個交易卡號為例,十年發(fā)行的交易卡號為30萬,三十年為90萬交易卡號,按100萬交易卡號發(fā)行量,基本上就能滿足國內(nèi)普通高校的三十年的使用。
以100萬的交易卡號發(fā)行量,按照上述方法可知:按BIT位存儲的方式,一字節(jié)能存8個交易卡號,那么表示100萬的交易卡號在存儲中所占用的字節(jié)數(shù)為1000000/8=125000,則保存100萬的交易卡號需要的存儲器容量為125000/1024=122K字節(jié),按照目前常用的存儲器容量,選擇存儲器容量為128K字節(jié),其可保存1048576個交易卡號。
卡片發(fā)行時,交易卡號由1開始,按自然數(shù)的方式依次遞增;假設(shè)在存儲器中,以某個BIT位為0表示是一個有效的名單;BIT位為1表示為無效名單。那么通過如下計算方法就很方便的檢索定位到某個交易卡號(例如Y)在存儲在存儲器的第N字節(jié),第M位。
計算方法為:存儲的字節(jié)地址:N=(Y-1)/8;(取模),在地址N內(nèi)的BIT位:M=(Y-1)%8;(取余數(shù))。
如下表1為各交易卡號在存儲器中的地址。
表1
如上表1可知:
交易卡號是15,由它在存儲器中的地址為:N=(15-1)/8=1。
交易卡號是15,由它在存儲器中的位地址為:M=(15-1)%8=6。
即:交易卡為15,是保存在名單區(qū)偏移地址為1的字節(jié)單位,所在的BIT位為6。
根據(jù)以上算法,同理可計算出其它交易卡號在存儲器中的保存位置。如果需要增加某個有效交易卡號,只要計算出該交易卡號的字節(jié)地址,把該字節(jié)地址的數(shù)據(jù)讀出,之后把對應(yīng)的BIT位置為1即可;如果要刪除某交易卡號,則把相應(yīng)的BIT位清為零即可。故使用本發(fā)明的方法,能非常有效的將交易卡號進(jìn)行存儲及檢索。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。