用于一卡通设备中的按位存储检索方法与流程

文档序号:12364189阅读:349来源:国知局

本发明属于按位存储检索方法,尤其设计一种用于一卡通设备中的按位存储检索方法。



背景技术:

计算机内部数据的存储和运算都采用二进制,以8个比特位构成一个字节,在一卡通应用中,一个交易卡号可能由几个字节组成,例如:四字节的IC卡的物理序列号。

IC卡终端设备,在交易时,通信都需要以卡片的合法性做判断,例如判断卡片的卡号是否为白名单或黑名单;如果交易卡号在存储器中是以按顺序存储的方法进行存储,则名单的检索通常也采用顺序存储的方法,依次一个卡号一个卡号的读取,之后进行判断,这种检索方式的缺点是:当名单量比较多时,检索的时间通常也就比较长。

如果名单在存储时,先经过排序,之后在应用时,如果需要对名单进行检索、判断,因先经过排序,故这种方法的效率通常很高。但其存在如下缺点:每增加或删除一个名单,都需要对整个名单数据需要重新排序,并重新下传名单至终端设备,故过于复杂,在校园应用中,卡片的挂失,解挂基本上每天都会发生,故不便于校园一卡通这样一个名单经常发生变化的场合。

故针对上述缺陷,有必要研发一种用于一卡通设备中的按位存储检索方法。



技术实现要素:

本发明提出一种用于一卡通设备中的按位存储检索方法,其用于解决现有技术中一卡通设备名单检索时间长及检索过于复杂的缺陷。本发明存储方式及检索方式简单方便快捷,其按BIT位存储的方式,大大减少数据存储量。

本发明的技术方案是这样实现的:

本发明公开一种用于一卡通设备中的按位存储检索方法,其包括如下步骤:用于一卡通设备中的按位存储检索方法,其特征在于,包括如下步骤:

(1)计算一卡通设备的年发行量和总发行量Z,其中总发行量=年发行量*自然年度;

(2)按照BIT位存储的方式,一个字节存储一卡通设备的八个交易卡号,通过总发行量/8计算出总发行量在存储中所占用的字节数;

(3)通过步骤(2)中计算出的字节数,得出保存总发行量Z所需名单需要的存储器容量X;

(4)发行卡片,交易卡号由1开始,按照自然数的方式依次递增;

(5)在存储器中,根据一卡通设备的交易卡号Y计算出其在存储器中的字节偏移地址N和在字节偏移地址N内的BIT位M;

(6)通过字节偏移地址N和在字节偏移地址N内的BIT位M计算出交易卡号的存储位置。

其中,BIT位为0表示是有效名单,BIT位为1表示是无效名单;步骤(5)中的计算方法为:N=(Y-1)/8;M=(Y-1)%8。

优选的,BIT位为0表示是无效名单,BIT位为1表示是有效名单;步骤(5)中的计算方法为:N=Y/8;M=Y%8。

其中,步骤(3)中存储器容量X的计算方法为:X=Z/1024。

与现有技术相比,本发明具有如下优点:本发明通过将按位存储检索方法用于一卡通设备中,其能通过计算出每个交易卡号的字节偏移地址及其BIT位,迅速将交易卡号进行存储和检索,大大减少了数据存储量。

具体实施方式

下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开一种用于一卡通设备中的按位存储检索方法,其包括如下步骤:(1)计算一卡通设备的年发行量和总发行量Z,其中总发行量=年发行量*自然年度;(2)按照BIT位存储的方式,一个字节存储一卡通设备的八个交易卡号,通过总发行量/8计算出总发行量在存储中所占用的字节数;(3)通过步骤(2)中计算出的字节数,得出保存总发行量Z所需名单需要的存储器容量X;(4)发行卡片,交易卡号由1开始,按照自然数的方式依次递增;(5)在存储器中,BIT位为0表示是有效名单,BIT位为1表示是无效名单;根据一卡通设备的交易卡号Y计算出其在存储器中的字节偏移地址N和在字节偏移地址N内的BIT位M;(6)通过字节偏移地址N和在字节偏移地址N内的BIT位M计算出交易卡号的存储位置。

其中,步骤(5)中的计算方法为:N=(Y-1)/8(取模);M=(Y-1)%8(取余数)。

其中,步骤(3)中存储器容量X的计算方法为:X=Z/1024。

本发明在实际应用过程中,步骤(5)中,本领域技术人员根据实际使用情况,可以在存储器中设定BIT位为0表示是无效名单,BIT位为1表示是有效名单,则相应的,在计算字节偏移地址N和在字节偏移地址N内的BIT位M时,其计算公式为:N=Y/8(取模);M=Y%8(取余数)。

以校园一卡通一年发行3万个交易卡号为例,十年发行的交易卡号为30万,三十年为90万交易卡号,按100万交易卡号发行量,基本上就能满足国内普通高校的三十年的使用。

以100万的交易卡号发行量,按照上述方法可知:按BIT位存储的方式,一字节能存8个交易卡号,那么表示100万的交易卡号在存储中所占用的字节数为1000000/8=125000,则保存100万的交易卡号需要的存储器容量为125000/1024=122K字节,按照目前常用的存储器容量,选择存储器容量为128K字节,其可保存1048576个交易卡号。

卡片发行时,交易卡号由1开始,按自然数的方式依次递增;假设在存储器中,以某个BIT位为0表示是一个有效的名单;BIT位为1表示为无效名单。那么通过如下计算方法就很方便的检索定位到某个交易卡号(例如Y)在存储在存储器的第N字节,第M位。

计算方法为:存储的字节地址:N=(Y-1)/8;(取模),在地址N内的BIT位:M=(Y-1)%8;(取余数)。

如下表1为各交易卡号在存储器中的地址。

表1

如上表1可知:

交易卡号是15,由它在存储器中的地址为:N=(15-1)/8=1。

交易卡号是15,由它在存储器中的位地址为:M=(15-1)%8=6。

即:交易卡为15,是保存在名单区偏移地址为1的字节单位,所在的BIT位为6。

根据以上算法,同理可计算出其它交易卡号在存储器中的保存位置。如果需要增加某个有效交易卡号,只要计算出该交易卡号的字节地址,把该字节地址的数据读出,之后把对应的BIT位置为1即可;如果要删除某交易卡号,则把相应的BIT位清为零即可。故使用本发明的方法,能非常有效的将交易卡号进行存储及检索。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1