可變序列數(shù)據(jù)自動生成方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種可變序列數(shù)據(jù)自動生成方法和系統(tǒng),該方法包括:獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符;將所述自定義進制包含的字符分解為字符數(shù)組;獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù);對所述相關(guān)參數(shù)進行預(yù)處理;根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。利用本發(fā)明,可以按用戶的實際需求自動生成用戶需要的可變序列數(shù)據(jù)。
【專利說明】可變序列數(shù)據(jù)自動生成方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字出版領(lǐng)域,具體而言,涉及一種可變序列數(shù)據(jù)自動生成方法和系統(tǒng)。
【背景技術(shù)】
[0002]可變數(shù)據(jù)印刷(Variable Data Printing,簡稱VDP)常用到序列數(shù)據(jù),用以標(biāo)識可變數(shù)據(jù)印刷的生產(chǎn)情況。現(xiàn)有技術(shù)中可變序列的數(shù)據(jù)生成具體流程如圖1所示,包括:
[0003]步驟11、按需要設(shè)定可變序列數(shù)據(jù)的生成進制,比如常用的十進制、十六進制,然后設(shè)定可變序列數(shù)據(jù)需要生成的總個數(shù),步長、起始值、可變序列數(shù)據(jù)的位數(shù),以及可變序列數(shù)據(jù)的變化方式;
[0004]步驟12、按需要設(shè)定可變序列數(shù)據(jù)的前綴或者后綴,比如生產(chǎn)日期,車間代號、產(chǎn)品標(biāo)識等等;
[0005]步驟13、根據(jù)步驟11和步驟12的設(shè)定參數(shù),生成相應(yīng)的可變序列數(shù)據(jù),并且將生成的可變序列數(shù)據(jù)應(yīng)用到可變數(shù)據(jù)印刷中。
[0006]現(xiàn)有技術(shù)中可變序列數(shù)據(jù)的生成進制目前一般有十進制(0-9)、十六進制(0-9,A-F)、二十六進制(A-Z)、三十六進制(0-9,A-Z)。目前這些進制都是包含有固定的字符數(shù),在很多情況下不能適應(yīng)用戶的生產(chǎn)需求。比如用戶希望生產(chǎn)的可變序列數(shù)據(jù)中不包含某個數(shù)字或者字母,現(xiàn)有的技術(shù)就沒法實現(xiàn)。用戶不得不在可變序列數(shù)據(jù)生成完畢之后再對生成的數(shù)據(jù)進行數(shù)據(jù)過濾,這降低了用戶的生產(chǎn)效率,影響了用戶的使用。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種可變序列數(shù)據(jù)自動生成方法和系統(tǒng),可以使用戶按照自己的實際需求去定義自己的進制數(shù)據(jù),可以按用戶的實際需求自動生成用戶需要的可變序列數(shù)據(jù)。
[0008]為此,本發(fā)明實施例提供如下技術(shù)方案:
[0009]一種可變序列數(shù)據(jù)自動生成方法,包括:
[0010]獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符;
[0011]將所述自定義進制包含的字符分解為字符數(shù)組;
[0012]獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù);
[0013]對所述相關(guān)參數(shù)進行預(yù)處理;
[0014]根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
[0015]優(yōu)選地,所述可變序列數(shù)據(jù)的相關(guān)參數(shù)包括:
[0016]可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式。
[0017]優(yōu)選地,所述對所述相關(guān)參數(shù)進行預(yù)處理包括:
[0018]分解所述起始值為字符數(shù)組;
[0019]分解所述步長為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
[0020]優(yōu)選地,所述根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)包括:
[0021]依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序;
[0022]根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)。
[0023]優(yōu)選地,所述根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)包括:
[0024]如果所述變化方式是遞增方式,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于所述字符數(shù)組的基數(shù)則取該值與所述基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值;
[0025]如果所述變化方式是遞減方式,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于0,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I;若相減的值大于等于0,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值。
[0026]一種可變序列數(shù)據(jù)自動生成系統(tǒng),包括:
[0027]設(shè)置模塊,用于獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符;
[0028]分解模塊,用于將所述自定義進制包含的字符分解為字符數(shù)組;
[0029]參數(shù)獲取模塊,用于獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù);
[0030]預(yù)處理模塊,用于對所述相關(guān)參數(shù)進行預(yù)處理;
[0031]可變序列數(shù)據(jù)生成模塊,用于根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
[0032]優(yōu)選地,所述可變序列數(shù)據(jù)的相關(guān)參數(shù)包括:
[0033]可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式。
[0034]優(yōu)選地,所述預(yù)處理模塊包括:
[0035]第一分解單元,用于分解所述起始值為字符數(shù)組;
[0036]第二分解單元,用于分解所述步長為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
[0037]優(yōu)選地,所述可變序列數(shù)據(jù)生成模塊包括:
[0038]查找單元,用于依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序;
[0039]生成單元,用于根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)。
[0040]優(yōu)選地,所述生成單元,具體用于在所述變化方式是遞增方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于所述字符數(shù)組的基數(shù)則取該值與所述基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值;在所述變化方式是遞減方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于O,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I ;若相減的值大于等于O,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值。
[0041]本發(fā)明實施例提供的可變序列數(shù)據(jù)自動生成方法和系統(tǒng),可以由用戶自己設(shè)定可變序列數(shù)據(jù)的進制及相關(guān)參數(shù),系統(tǒng)根據(jù)用戶設(shè)定的這些參數(shù),自動生成符合用戶所需要的可變序列數(shù)據(jù)。利用本發(fā)明實施例的方法及系統(tǒng),使得用戶可以更方便地生成所需的可變序列數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠適應(yīng)各種不同用戶的需求,具有很強的實用性。
【專利附圖】
【附圖說明】
[0042]圖1為現(xiàn)有技術(shù)中生成可變序列數(shù)據(jù)的處理流程圖;
[0043]圖2為本發(fā)明實施例可變序列數(shù)據(jù)自動生成方法的流程圖;
[0044]圖3為本發(fā)明實施例中生成的自定義進制可變序列數(shù)據(jù)示意圖;
[0045]圖4為本發(fā)明實施例可變序列數(shù)據(jù)自動生成系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0046]下面通過具體的實施例并結(jié)合附圖對本發(fā)明做進一步的詳細描述。
[0047]如圖2所示,是本發(fā)明實施例可變序列數(shù)據(jù)自動生成方法的流程圖,包括以下步驟:
[0048]步驟21,獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符。
[0049]具體地,可以在可變序列數(shù)據(jù)生成選用進制的編輯界面上添加一個自定義進制的選項,并且添加設(shè)置該進制所包含的字符集的選項。這樣,用戶可以在該界面上設(shè)定自定義進制以及所述自定義進制包含的字符。
[0050]比如,為了方便描述起見,設(shè)置自定義進制的總字符集為0-9,A-Z,共36個字符。用戶創(chuàng)建的自定義進制需要從這36個字符中選擇。假設(shè)用戶需要添加一個15進制的自定義進制,設(shè)置進制名稱為N15。假設(shè)用戶選擇的字符為O, I, 2,3,5,6,7,8,9,A, B, C,D, E, F。這樣N15進制就包含了用戶選擇的15個字符,并且進制的基數(shù)Radix=15。
[0051]步驟22,將所述自定義進制包含的字符分解為字符數(shù)組。
[0052]上述自定義N15進制分解成字符數(shù)組CustomSystem即為:{“0”,”1”,”2”,”3”,”5”,"6","7","8","9","B","C","D",”F”}。
[0053]步驟23,獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù)。
[0054]所述相關(guān)參數(shù)可以包括可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式等。
[0055]比如,用戶設(shè)置的可變序列數(shù)據(jù)的數(shù)據(jù)總數(shù)為20,步長為18,位數(shù)為7,變化方式為遞增的變化方式。
[0056]步驟24,對所述相關(guān)參數(shù)進行預(yù)處理。
[0057]具體地,可以將所述起始值分解為字符數(shù)組;將所述步長分解為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
[0058]比如,用戶設(shè)置的相關(guān)參數(shù)如下:可變序列為十六進制,序列位數(shù)為5,起始數(shù)據(jù)設(shè)置為0000A,步長為16。由步長轉(zhuǎn)為十六進制即為10,按設(shè)置的序列位數(shù)補齊步長即為00010,補齊后的步長分解數(shù)組為{ ‘0’,’ O’,’ O’,’ I’,’ O’ }。
[0059]步驟25,根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
[0060]可以按照查表方式自動計算可變序列數(shù)據(jù),并生成數(shù)據(jù)文件。
[0061]具體地,可以依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序。
[0062]若是遞增方式變化,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于字符數(shù)組的基數(shù)則取該值與基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,該字符即為生成的可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,即為生成的可變序列對應(yīng)數(shù)據(jù)位的值;
[0063]若是遞減方式變化,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于0,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,該字符即為生成的可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I ;若相減的值大于等于0,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,即為生成的可變序列對應(yīng)數(shù)據(jù)位的值。
[0064]下面舉例進一步詳細說明本發(fā)明實施例的方法自動生成用戶自定義可變序列數(shù)據(jù)的過程。
[0065]假設(shè)用戶選擇的字符為O, I, 2,3,5,6,7,8,9,A, B, C,D, E, F。這樣添加的自定義進制N15進制就包含了用戶選擇的15個字符,并且進制的基數(shù)Radix=15。
[0066]將自定義的N15進制按照算法要求分解成字符數(shù)組CustomSystem:
[0067]N15={ “0”,”1”,”2”,”3”,”5”,”6”,”7”,”8”,”9”,”A”,”B”,”C”,”D”,”E”,,’F,,}。
[0068]用戶設(shè)置可變序列數(shù)據(jù)的總數(shù)為20,步長為18,數(shù)據(jù)位數(shù)為7,起始值為0000000,
遞增方式變化。
[0069]首先,將起始值分解成字符數(shù)組為StartChar [7] = {“ O,,,“ O,,,“ O,,,“ O,,,“ O,,,“ O,,,“ O,,};
[0070]步長18是10進制,轉(zhuǎn)成15進制即為13,設(shè)置的序列位數(shù)為7位,步長補齊后即為0000013,因此,將步長分解成整型數(shù)組為St印[7] = { ‘0’,,0,,,0,,,0,,,0,,,1,,,3,}
9
[0071]第I個數(shù)據(jù):起始值0000000 ;
[0072]第2個數(shù)據(jù):
[0073]從起始數(shù)據(jù)的最低位開始算起,即最右邊一位,即為數(shù)組的最后一個值,數(shù)組StartChar 起始值從 O 開始,即 StartChar [O] = ‘0’ ;StartChar [2] = ‘0’ ;StartChar [3] = ‘0’ ;StartChar[4]= ‘0’ ;StartChar[5]= ‘0’ ;StartChar[6]= ‘0’ ;
[0074]步長數(shù)據(jù)St印[7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ I’,’ 3’ }的最低位也是最右邊一位,也是數(shù)組的最后一個值,即 Step[0]=’0’ ;Step[l]=’0’ ;Step[2]=’0’ ;Step[3]=’0’
;Step [4]=> 0’ ; Step [5]=> I’ ; Step [6]=> 3’ ;
[0075]從最低位即最右邊一位StartChar [6]開始算起,其對應(yīng)的步長數(shù)據(jù)為St印[6] ; StartChar [6]=,O,對應(yīng)N15中的數(shù)據(jù)位序為0,St印[6] =’3’對應(yīng)N15中的數(shù)據(jù)位序為3,0+3=3〈15,則新生成的數(shù)據(jù)NewChar [6]即N15中位序為3的字符,NewChar[6]=Nl5[3]=, 3,;
[0076]StartChar [5]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[5] =’I’對應(yīng)N15中的數(shù)據(jù)位序為1,0+1=1〈15,則新生成的數(shù)據(jù)他《0^1'[5]即N15中位序為I的字符,NewChar [5] =’I’;
[0077]StartChar [4]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[4] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他《01&1'[4]即N15中位序為O的字符,NewChar [4]=’0’;
[0078]StartChar [3]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[3] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[3]即N15中位序為O的字符,NewChar [3]=’0’;
[0079]StartChar [2]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[2] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[2]即N15中位序為O的字符,NewChar [2]=’0’;
[0080]StartChar [I]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[I] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[1]即N15中位序為O的字符,NewChar [1]=’0’;
[0081]StartChar [O] =’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[O] =’0’對應(yīng)N15中的數(shù)據(jù)位序為O,0+0=0<15,則新生成的數(shù)據(jù)NewChar [O]即NI5中位序為O的字符,NewChar [O] = ’ O ’ ;
[0082]NewChar[7] = { ‘O,,,O,,,O,,,O,,,O,,,I,,,3,}對應(yīng)的數(shù)據(jù)即為 0000013。
[0083]第3個數(shù)據(jù):
[0084]從第2個數(shù)據(jù)的最低位開始算起,即最右邊一位,也就是數(shù)組的最后一個值,數(shù)組StartChar 起始值從 O 開始,即 StartChar [O] = ‘ O ’; StartChar [2] = ‘ O ’; StartChar [3] = ‘ O ’ ;StartChar[4]= ‘O,;StartChar[5]= ‘I,;StartChar[6]= ‘3,;
[0085]步長數(shù)據(jù)St印[7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ I’,’ 3’ }的最低位也是最右邊一位,也是數(shù)組的最后一個值,即 Step[0]=’0’ ;Step[l]=’0’ ;Step[2]=’0’ ;Step[3]=’0’
;Step [4]=> 0’ ; Step [5]=> I’ ; Step [6]=> 3’ ;
[0086]從最低位即最右邊一位StartChar [6]開始算起,其對應(yīng)的步長數(shù)據(jù)為St印[6] ; StartChar [6]=,3,對應(yīng)N15中的數(shù)據(jù)位序為3,St印[6] =’3’對應(yīng)N15中的數(shù)據(jù)位序為3,3+3=6〈15,則新生成的數(shù)據(jù)NewChar [6]即N15中位序為6的字符,NewChar[6]=Nl5[6]=, 7,;
[0087]StartChar [5]=’I’對應(yīng)N15中的數(shù)據(jù)位序為1,St印[5] =’I’對應(yīng)N15中的數(shù)據(jù)位序為1,1+1=2〈15,則新生成的數(shù)據(jù)NewChar[5]即N15中位序為2的字符,NewChar [5] =’2’;
[0088]StartChar[4]=’0l^SN15中的數(shù)據(jù)位序為0,St印[4] =’0’對應(yīng)N15中的數(shù)據(jù)位序為O,0+0=0<15,則新生成的數(shù)據(jù)NewChar [4]即NI5中位序為O的字符,NewChar [4] = ’ O ’ ;
[0089]StartChar [3]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[3] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[3]即N15中位序為O的字符,NewChar [3]=’0’;
[0090]StartChar [2]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[2] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[2]即N15中位序為O的字符,NewChar [2]=’0’;
[0091]StartChar [I]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[I] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[1]即N15中位序為O的字符,NewChar [1]=’0’;
[0092]StartChar [O] =’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[O] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他¥01&1'[0]即N15中位序為O的字符,NewChar [0]=’0’;
[0093]NewChar [7] = { ‘O,,,O,,,O,,,O,,,O,,,2,,,7,}對應(yīng)的數(shù)據(jù)即為 0000027。
[0094]第4個數(shù)據(jù):
[0095]從第3個數(shù)據(jù)的最低位開始算起,即最右邊一位,即為數(shù)組的最后一個值,數(shù)組StartChar 起始值從 O 開始,即 StartChar [O] = ‘ O ’; StartChar [2] = ‘ O ’; StartChar [3] = ‘ O ’ ;StartChar[4]= ‘O, ;StartChar[5]= ‘2, ;StartChar[6]= ‘7,;
[0096]步長數(shù)據(jù)St印[7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ I’,’ 3’ }的最低位也是最右邊一位,也是數(shù)組的最后一個值,即 Step[0]=’0’ ;Step[l]=’0’ ;Step[2]=’0’ ;Step[3]=’0’
;Step [4]=> 0’ ; Step [5]=> I’ ; Step [6]=> 3’ ;
[0097]從最低位即最右邊一位StartChar [6]開始算起,其對應(yīng)的步長數(shù)據(jù)為St印[6] ; StartChar [6]=,7,對應(yīng)N15中的數(shù)據(jù)位序為6,St印[6] =’3’對應(yīng)N15中的數(shù)據(jù)位序為3,3+6=9〈15,則新生成的數(shù)據(jù)NewChar [6]即N15中位序為9的字符,NewChar[9]=Nl5[9]=, A,;
[0098]StartChar [5]=’2’對應(yīng)N15中的數(shù)據(jù)位序為2,St印[5] =’I’對應(yīng)N15中的數(shù)據(jù)位序為1,1+2=3〈15,則新生成的數(shù)據(jù)NewChar[5]即N15中位序為3的字符,NewChar [5] =’3’;
[0099]StartChar[4]=’0l^SN15中的數(shù)據(jù)位序為0,St印[4] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他《01&1'[4]即N15中位序為O的字符,NewChar [4]=’0’;
[0100]StartChar [3]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[3] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[3]即N15中位序為O的字符,NewChar [3]=’0’;
[0101]StartChar [2]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[2] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[2]即N15中位序為O的字符,NewChar [2]=’0’;
[0102]StartChar [I]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[I] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[1]即N15中位序為O的字符,NewChar [1]=’0’;
[0103]StartChar [O] =’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[O] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他¥01&1'[0]即N15中位序為O的字符,NewChar [0]=’0’;
[0104]NewChar [7] = { ‘O,,,O,,,O,,,O,,,O,,,3,,,A,}對應(yīng)的數(shù)據(jù)即為 000003A。
[0105]第5個數(shù)據(jù):
[0106]從第4個數(shù)據(jù)的最低位開始算起,即最右邊一位,即為數(shù)組的最后一個值,數(shù)組StartChar 起始值從 O 開始,即 StartChar [O] = ‘ O ’; StartChar [2] = ‘ O ’; StartChar [3] = ‘ O ’ ;StartChar[4]= ‘O, ;StartChar[5]= ‘3, ;StartChar[6]= ‘A,;
[0107]步長數(shù)據(jù)St印[7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ I’,’ 3’ }的最低位也是最右邊一位,也是數(shù)組的最后一個值,即 Step[0]=’0’ ;Step[l]=’0’ ;Step[2]=’0’ ;Step[3]=’0’
;Step [4]=> 0’ ; Step [5]=> I’ ; Step [6]=> 3’ ;
[0108]從最低位即最右邊一位StartChar [6]開始算起,其對應(yīng)的步長數(shù)據(jù)為St印[6] ; StartChar [6]=,A,對應(yīng)N15中的數(shù)據(jù)位序為9,St印[6] =’3’對應(yīng)N15中的數(shù)據(jù)位序為3,9+3=12〈15,則新生成的數(shù)據(jù)NewChar[6]即N15中位序為13的字符,NewChar[6]=N15[12]=, D,;
[0109]StartChar [5]=’3’對應(yīng)N15中的數(shù)據(jù)位序為3,St印[5] =’I’對應(yīng)N15中的數(shù)據(jù)位序為1,3+1=4〈15,則新生成的數(shù)據(jù)他《0^1"[5]即N15中位序為4的字符,NewChar [5] =’5’;
[0110]StartChar [4]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[4] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他《01&1'[4]即N15中位序為O的字符,NewChar [4]=’0’;
[0111]StartChar [3]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[3] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[3]即N15中位序為O的字符,NewChar [3]=’0’;
[0112]StartChar [2]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[2] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[2]即N15中位序為O的字符,NewChar [2]=’0’;
[0113]StartChar [I]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[I] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[1]即N15中位序為O的字符,NewChar [1]=’0’;
[0114]StartChar [O] =’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[O] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他¥01&1'[0]即N15中位序為O的字符,NewChar [0]=’0’;
[0115]NewChar [7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ 5’,’ E’ }對應(yīng)的數(shù)據(jù)即為 000005D。
[0116]第6個數(shù)據(jù):從第5個數(shù)據(jù)的最低位開始算起,即最右邊一位,即為數(shù)組的最后一個值,數(shù)組 StartChar 起始值從 O 開始,即 StartChar[O] = ‘0’ ;StartChar[2] = ‘0’ ;StartChar[3]= ‘O, ;StartChar[4]= ‘O, ;StartChar[5]= ‘5, ;StartChar[6]= ‘D,;
[0117]步長數(shù)據(jù)St印[7] = { ‘0’,’ O’,’ O’,’ O’,’ O’,’ I’,’ 3’ }的最低位也是最右邊一位,也是數(shù)組的最后一個值,即 Step [O] =’O’ ; Step [I]=’O’ ; Step [2]=’O’ ; Step [3]=’O’ ;
[0118]Step [4]=> 0,; Step [5]=> I,; Step[6]=> 3,;
[0119]從最低位即最右邊一位StartChar [6]開始算起,其對應(yīng)的步長數(shù)據(jù)為St印[6] ; StartChar [6]=’ D,對應(yīng)N15中的數(shù)據(jù)位序為12,Step [6]=,3,對應(yīng)N15中的數(shù)據(jù)位序為3,12+3=15>=15,^。/。^^,則新生成的數(shù)據(jù)他…!^!.^]即N15中位序為O的字符,NewChar [6] =N15 [I]=’ O’,并且向高位進 I ;
[0120]StartChar[5]=’ 5,對應(yīng)N15中的數(shù)據(jù)位序為4,St印[5]=’ I,對應(yīng)N15中的數(shù)據(jù)位序為1,4+1=5 ;5+1=6〈15,則新生成的數(shù)據(jù)NewChar[5]即N15中位序為6的字符,NewChar [6]=> rV ;
[0121]StartChar[4]=’0l^SN15中的數(shù)據(jù)位序為0,St印[4] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他《01&1'[4]即N15中位序為O的字符,NewChar [4]=’0’;
[0122]StartChar [3]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[3] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[3]即N15中位序為O的字符,NewChar [3]=’0’;
[0123]StartChar [2]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[2] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[2]即N15中位序為O的字符,NewChar [2]=’0’;
[0124]StartChar [I]=’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[I] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他界0^1'[1]即N15中位序為O的字符,NewChar [1]=’0’;
[0125]StartChar [O] =’O’對應(yīng)N15中的數(shù)據(jù)位序為0,St印[O] =’0’對應(yīng)N15中的數(shù)據(jù)位序為0,0+0=0〈15,則新生成的數(shù)據(jù)他¥01&1'[0]即N15中位序為O的字符,NewChar [0]=’0’;
[0126]NewChar[7] = { ‘O,,,O,,,O,,,O,,,O,,,7,,,I,}對應(yīng)的數(shù)據(jù)即為 0000070。
[0127]依此類推。最后生成全部的20條數(shù)據(jù)如圖3所示。
[0128]由上述描述可知,本發(fā)明實施例可變序列數(shù)據(jù)自動生成方法,可以根據(jù)用戶自己設(shè)定的可變序列數(shù)據(jù)的進制及相關(guān)參數(shù),自動生成符合用戶所需要的可變序列數(shù)據(jù)。利用本發(fā)明實施例的方法,使得用戶可以更方便地生成所需的可變序列數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠適應(yīng)各種不同用戶的需求,具有很強的實用性。
[0129]相應(yīng)地,本發(fā)明實施例還提供一種可變序列數(shù)據(jù)自動生成系統(tǒng),如圖4所示,是該系統(tǒng)的一種結(jié)構(gòu)示意圖。
[0130]在該實施例中,所述系統(tǒng)包括:
[0131 ] 設(shè)置模塊41,用于獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符;
[0132]分解模塊42,用于將所述自定義進制包含的字符分解為字符數(shù)組;
[0133]參數(shù)獲取模塊43,用于獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù);
[0134]預(yù)處理模塊44,用于對所述相關(guān)參數(shù)進行預(yù)處理;
[0135]可變序列數(shù)據(jù)生成模塊45,用于根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
[0136]所述可變序列數(shù)據(jù)的相關(guān)參數(shù)包括:可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式。
[0137]相應(yīng)地,所述預(yù)處理模塊44包括:第一分解單元和第二分解單元。其中,所述第一分解單元用于分解所述起始值為字符數(shù)組;所述第二分解單元用于分解所述步長為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
[0138]上述可變序列數(shù)據(jù)生成模塊45包括:查找單元和生成單元。其中,所述查找單元用于依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序;所述生成單元用于根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)。
[0139]具體地,所述生成單元可以在所述變化方式是遞增方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于所述字符數(shù)組的基數(shù)則取該值與所述基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值;在所述變化方式是遞減方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于0,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I ;若相減的值大于等于0,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值。具體過程可參照前面本發(fā)明實施例的方法中的描述,在此不再贅述。
[0140]由上述描述可知,本發(fā)明實施例可變序列數(shù)據(jù)自動生成系統(tǒng),可以根據(jù)用戶自己設(shè)定的可變序列數(shù)據(jù)的進制及相關(guān)參數(shù),自動生成符合用戶所需要的可變序列數(shù)據(jù)。利用本發(fā)明實施例的系統(tǒng),使得用戶可以更方便地生成所需的可變序列數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠適應(yīng)各種不同用戶的需求,具有很強的實用性。
[0141]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0142]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種可變序列數(shù)據(jù)自動生成方法,其特征在于,包括: 獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符; 將所述自定義進制包含的字符分解為字符數(shù)組; 獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù); 對所述相關(guān)參數(shù)進行預(yù)處理; 根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可變序列數(shù)據(jù)的相關(guān)參數(shù)包括: 可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對所述相關(guān)參數(shù)進行預(yù)處理包括: 分解所述起始值為字符數(shù)組; 分解所述步長為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)包括: 依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序; 根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)包括: 如果所述變化方式是遞增方式,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于所述字符數(shù)組的基數(shù)則取該值與所述基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值; 如果所述變化方式是遞減方式,則將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于O,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I ;若相減的值大于等于O,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值。
6.一種可變序列數(shù)據(jù)自動生成系統(tǒng),其特征在于,包括: 設(shè)置模塊,用于獲取用戶設(shè)定的生成可變序列數(shù)據(jù)的自定義進制以及所述自定義進制包含的字符; 分解模塊,用于將所述自定義進制包含的字符分解為字符數(shù)組; 參數(shù)獲取模塊,用于獲取用戶設(shè)置的可變序列數(shù)據(jù)的相關(guān)參數(shù); 預(yù)處理模塊,用于對所述相關(guān)參數(shù)進行預(yù)處理; 可變序列數(shù)據(jù)生成模塊,用于根據(jù)所述字符數(shù)組及預(yù)處理后的相關(guān)參數(shù)生成可變序列數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述可變序列數(shù)據(jù)的相關(guān)參數(shù)包括: 可變序列數(shù)據(jù)的起始值、位數(shù)、數(shù)據(jù)總數(shù)、步長、以及變化方式。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述預(yù)處理模塊包括: 第一分解單元,用于分解所述起始值為字符數(shù)組; 第二分解單元,用于分解所述步長為整型數(shù)組,并根據(jù)設(shè)置的位數(shù)進行補齊。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述可變序列數(shù)據(jù)生成模塊包括: 查找單元,用于依次從所述起始值數(shù)據(jù)對應(yīng)的最低位開始計算,查找該數(shù)據(jù)位對應(yīng)的字符在所述字符數(shù)組中的位序; 生成單元,用于根據(jù)所述變化方式及所述位序生成可變序列數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述生成單元,具體用于在所述變化方式是遞增方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相加;若相加的值大于等于所述字符數(shù)組的基數(shù)則取該值與所述基數(shù)求余之后的余數(shù),查找該余數(shù)在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位進I ;若相加的值小于字符數(shù)組的基數(shù)則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值;在所述變化方式是遞減方式時,將所述位序與對應(yīng)數(shù)據(jù)位的整型數(shù)組中對應(yīng)的整數(shù)相減;若相減的值小于0,則取所述字符數(shù)組的基數(shù)與相減的值的和,查找該和在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值,同時向高一位借I;若相減的值大于等于0,則取該值位序在所述字符數(shù)組中對應(yīng)的字符,并將所述字符作為可變序列數(shù)據(jù)對應(yīng)數(shù)據(jù)位的值。
【文檔編號】G06F3/12GK104423901SQ201310384982
【公開日】2015年3月18日 申請日期:2013年8月29日 優(yōu)先權(quán)日:2013年8月29日
【發(fā)明者】張秋利 申請人:北大方正集團有限公司, 方正信息產(chǎn)業(yè)控股有限公司, 北京北大方正電子有限公司