(57)【要約】【課題】コンピューターで使われているファイルを圧縮する場合や差分ファイルを作成する場合などで従来方式の2進数で表記した文字を2byteや4byte文字列として記録する方法だと、圧縮や差分ファイル作成を行うファイルに処理可能最大ファイルサイズが発生してしまうという問題と固定長のファイル分割方法で分割サイズを変化させてファイルを分割すると分割サイズをファイルのどこかに記録する必要があるという問題がある。【解決手段】255を超える数値を255以下の数値に分割して記録する為に、255を超える数値を254で割って、倍数で記録し、その倍数が254を超える場合は、乗数で記録するという数値分割処理を行う事で問題を解決する。【選択図】    図１
2014119934.tif 000002
【特許請求の範囲】
【請求項１】
以下に、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、コンピューター本体の内部にある本体メモリーに作成される事とし、以下に、配列の末尾にデーターを代入すると記述している場合があるが、配列の最初の位置に代入する場合でも配列の末尾に代入するという記述をする事があるとし、ファイルの末尾に書き込むという記述の場合は、ファイルの最初の位置に書き込む場合でもファイルの末尾に書き込むと記述している場合がある事とし、以下の分岐処理に於いて分岐条件に該当しない場合どうするかを記述していない場合があるが、分岐条件に該当しない場合どうするかを記述していない場合は、何も処理を行わないという事とし、また、コンピューターで普通に使われているテキスト文字（日本国では、ASCIIコード２文字で１文字を表す全角文字とASCIIコード１文字で表す半角文字のこと）をテキスト文字と呼んだり、テキスト文字の事を文字コードまたは、文字と呼んだりする事があるとし、また、２進数の数値を２進数と呼んだり、１０進数の数値を１０進数と略して呼んだりする事があるとし、データーを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター（作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなど）の順番通りに配列に代入する事とし、以下に、配列の型とは、配列に代入する事ができる１個のデーターが使用するコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものであり、変数にも同じく型があるが、変数の型も配列の型と全く同じであるとし、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う事とし、string型で配列や変数を作成して、作成したstring型の配列や変数に文字列や文字を代入すると自動的に文字コードに変換されて配列や変数に代入されるものであるが、この様なstring型の配列や変数の事を文字列を代入する事が出来る配列や変数と表現する事とし、文字列を代入する事が出来る配列を作成する場合は、「何bitのstring型で幾つのサイズで配列を作成する」という表現で配列を作成する事とし、文字列を代入する事が出来る変数を作成する場合は、「何byteまたは、何bitのstring型で変数を作成する」という表現をする事とし、string型ではない配列を作成する場合は、「何bitの型で幾つのサイズで配列を作成する」という表現をする事とし、string型ではない変数を作成する場合は、「何bitの型で変数を作成する」という表現で変数を作成する事とし、以下に、配列番号とは、配列に代入されるデーターの位置を示す番号の事を言うという事とし、配列のデーターを代入できる領域の最初の位置に付けられる番号は、0番となり、順次１づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置に付されるものとし、以下の処理で数値を分割処理する工程を行う事とするが、数値を255以下数値に分割する工程を分割工程と呼ぶ事とし、分割工程で処理する事ができる数値は、0から9,223,372,036,854,775,807までの小数点以下の数値を含まない正数値である事とし、0から9,223,372,036,854,775,807までの小数点以下の数値を含まない正数値の中から、任意に決めた数値を元データー変数に代入���、元データー変数に対して分割工程を実行させる事とし、分割工程では、終端マークとして255を使用する事とし、1byteに代入する事ができる最大値は、254とし、255を数値として使用しない事とし、中間マークには、0を使用する事とし、64bitの型で16個の変数を作成し、各々の変数を、最初の余り変数、倍数変数、倍数の余り変数、ユニット変数、ユニット２変数、ユニット３変数、ユニット４変数、ユニット５変数、ユニット６変数、ユニットの余り変数、ユニット２の余り変数、ユニット３の余り変数、ユニット４の余り変数、ユニットの５余り変数と、仮称し、倍数値を算出させて、算出させた数値を代入する為の変数を64bitの型で作成して、算出倍数変数と呼ぶ事とし、余りを算出させて算出させた数値を代入する変数を64bitの型で作成して、算出余り変数と呼ぶ事とし、1byteの型で変数を作成して、作成した変数を判断変数と呼ぶ事とし、1byteの型で０のサイズで配列を作成して、作成した配列を分割配列と呼ぶ事とし、以下で既に作成した分割配列のサイズ（配列に代入できるデーターの数）を指定して作成しなおすという処理を行うが、この配列のサイズ変更をリサイズ処理と呼ぶ事とし、元データー変数に代入された数値が254より小さい場合と254と等しい場合と254より大きい場合との３種類に分岐し、この分岐を分割１分岐と呼ぶ事とし、分割１分岐で、元データー変数に代入された数値が254より小さい場合は、計算せずにそのままの数値を計算結果とし、分割配列のサイズを1byteの型で１のサイズにリサイズ処理をして、計算結果を分割配列の最初の位置に代入する事とし、判断変数に、0を代入し、分割１分岐で、元データー変数に代入された数値が254と等しい場合は、計算せずに計算結果をそのままの数値の254とし、分割配列のサイズを1byteの型で２のサイズにリサイズ処理をして、計算結果の254という数値を分割配列の最初の位置に代入し、分割配列の最後の位置に終端マークの255という数値を代入する事とし、判断変数に、0を代入し、分割１分岐で、元データー変数に代入された数値が254より大きい場合は、以下の処理を行う事とし、判断変数に、1を代入し、元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に代入し、元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数には0を代入し、元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値がある場合は、少数点以下を切り捨てた数値を算出倍数変数に代入し、元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値がある場合は、元データー変数に代入された数値を254で割った場合の余りを、算出余り変数に代入し、算出倍数変数に代入された数値を倍数変数に代入し、算出余り変数に代入されている数値を最初の余り変数に代入し、分割１分岐を終了する事とし、判断変数に代入された数値で分岐する事とし、この分岐を分割２分岐と呼ぶ事とし、分割２分岐で、判断変数に代入された数値が1の場合と判断変数に代入された数値が0の場合とに分岐する事とし、分割２分岐で、判断変数に代入された数値が1の場合は、倍数変数に代入された数値が254以下の場合と255以上の��合とに分岐する事とし、この分岐を大小１分岐と仮称し、大小１分岐で、算出倍数変数に代入された数値が254以下の場合は、以下の処理を行う事とし、分割配列のサイズを1byteの型で５のサイズにリサイズ処理をして、254を分割配列の最初の位置に代入し、中間マークの0を分割配列の２番目の位置に代入し、倍数変数に代入された数値を分割配列の３番目の位置に代入し、最初の余り変数に代入された数値を分割配列の４番目の位置に代入し、終端マークの255を分割配列の最後の位置に代入する事とし、判断変数に、0を代入し、大小１分岐で、算出倍数変数に代入された数値が255以上の場合は、以下の処理を行う事とし、算出倍数変数に代入された数値を254で割って得られた数値に小数点以下の数値が無かった場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数に代入された数値を254で割って得られた数値に小数点以下の数値が無かった場合は、算出余り変数に0を上書きで代入し、算出倍数変数に代入された数値を254で割って得られた数値に小数点以下があった場合は、小数点以下を切り捨てて、得られた数値を算出倍数変数に上書きで代入し、算出倍数変数に代入された数値を254で割って得られた数値に小数点以下があった場合は、算出倍数変数に代入された数値を254で割って得られた余りを、算出余り変数に上書きで代入し、算出倍数変数に代入された数値をユニット変数に代入し、算出余り変数に代入されている数値を倍数の余り変数に代入し、大小１分岐で、ユニット変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子１分岐と仮称し、大小子１分岐で、ユニット変数に代入された数値が254以下の場合は、以下の処理を行う事とし、分割配列を1byteの型で５のサイズにリサイズ処理をして、254を分割配列の最初の位置に代入し、ユニット変数に代入された数値を分割配列の２番目の位置に代入し、倍数の余り変数に代入された数値を分割配列の３番目の位置に代入し、最初の余り変数に代入された数値を分割配列の４番目の位置に代入し、終端マークの255を分割配列の最後の位置に代入する事とし、判断変数に、0を代入し、大小子１分岐で、ユニット変数に代入された数値が255以上の場合は、以下の処理を行う事とし、判断変数に、1を代入し、大小子１分岐を終了する事とし、判断変数に代入された数値が1であった場合と0であった場合で分岐する事とし、この分岐を判断１分岐と仮称し、判断１分岐で、判断変数に代入された数値が1であった場合は、以下の処理を行う事とし、ユニット変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入し、ユニット２変数に算出���数変数に代入された数値を代入し、ユニットの余り変数に算出余り変数に代入された数値を代入し、判断１分岐で、ユニット２変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子２分岐と仮称し、大小子２分岐でユニット２変数に代入された数値が254以下の場合は、分割配列を1byteの型で７のサイズにリサイズ処理して、分割配列の最初の位置に254を代入し、分割配列の２番目の位置に254を代入し、分割配列の３番目の位置にユニット２変数の数値を代入し、分割配列の４番目の位置にユニットの余り変数に代入された数値を代入し、分割配列の５番目の位置に倍数の余り変数に代入された数値を代入し、分割配列の６番目の位置に最初の余り変数の数値を代入し、分割配列の最後の位置に、終端マークの255を代入する事とし、判断変数に0を代入し、大小子２分岐でユニット２変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子２分岐を終了する事とし、判断１分岐で、判断変数に代入された数値が0であった場合は、何も処理をせずに、判断１分岐を終了する事とし、判断変数に代入された数値が0の場合と1の場合とに分岐する事とし、この分岐を判断２分岐と仮称し、判断２分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う事とし、ユニット２変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入し、ユニット３変数に算出倍数変数に代入された数値を代入し、ユニット２の余り変数に算出余り変数に代入された数値を代入し、判断２分岐で、ユニット３変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子３分岐と仮称し
、大小子３分岐で、ユニット３変数に代入された数値が254以下の場合は、分割配列を1byteの型で９のサイズにリサイズ処理して、分割配列の最初の位置に254を代入し、分割配列の２番目の位置に254を代入し、分割配列の３番目の位置に254を代入し、分割配列の４番目の位置にユニット３変数の数値を代入し、分割配列の５番目の位置にユニット２の余り変数の数値を代入し、分割配列の６番目の位置にユニットの余り変数に代入された数値を代入し、分割配列の７番目の位置に倍数の余り変数に代入された数値を代入し、分割配列の８番目の位置に最初の余り変数に代入された数値を代入し、分割配列の最後の位置に、終端マークの255を代入する事とし、判断変数に0を代入し、大小子３分岐で、ユニット３変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子３分岐を終了する事とし、判断２分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断２分岐を終了する事とし、判断変数に代入された数値が0の場合と1の場合とに分岐する事とし、この分岐を判断３分岐と仮称し、判断３分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う事とし、ユニット３変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入し、ユニット４変数に算出倍数変数に代入された数値を代入し、ユニット３の余り変数に算出余り変数に代入された数値を代入し、判断３分岐で、ユニット４変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子４分岐と仮称し、大小子４分岐で、ユニット４変数に代入された数値が254以下の場合は、分割配列を1byteの型で１１のサイズにリサイズ処理して、分割配列の最初の位置に254を代入し、分割配列の２番目の位置に254を代入し、分割配列の３番目の位置に254を代入し、分割配列の４番目の位置に254を代入し、分割配列の５番目の位置にユニット４変数の数値を代入し、分割配列の６番目の位置にユニット３の余り変数の数値を代入し、分割配列の７番目の位置にユニット２の余り変数に代入された数値を代入し、分割配列の８番目の位置にユニットの余り変数に代入された数値を代入し、分割配列の９番目の位置に倍数の余り変数に代入された数値を代入し、分割配列の１０番目の位置に最初の余り変数に代入された数値を代入し、分割配列の最後の位置に、終端マークの255を代入する事とし、判断変数に0を代入し、大小子４分岐で、ユニット４変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子４分岐を終了する事とし、判断３分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断３分岐を終了する事���し、判断変数に代入された数値が0の場合と1の場合とに分岐する事とし、この分岐を判断４分岐と仮称し、判断４分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う事とし、ユニット４変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入し、ユニット５変数に算出倍数変数に代入された数値を代入し、ユニット４の余り変数に算出余り変数に代入された数値を代入し、判断４分岐で、ユニット５変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子５分岐と仮称し、大小子５分岐で、ユニット５変数に代入された数値が254以下の場合は、分割配列を1byteの型で１３のサイズにリサイズ処理して、分割配列の最初の位置に254を代入し、分割配列の２番目の位置に254を代入し、分割配列の３番目の位置に254を代入し、分割配列の４番目の位置に254を代入し、分割配列の５番目の位置に254を代入し、分割配列の６番目の位置にユニット５変数の数値を代入し、分割配列の７番目の位置にユニット４の余り変数の数値を代入し、分割配列の８番目の位置にユニット３の余り変数に代入された数値を代入し、分割配列の９番目の位置にユニット２の余り変数に代入された数値を代入し、分割配列の１０番目の位置にユニットの余り変数に代入された数値を代入し、分割配列の１１番目の位置に倍数の余り変数に代入された数値を代入し、分割配列の１２番目の位置に最初の余り変数に代入された数値を代入し、分割配列の最後の位置に、終端マークの255を代入する事とし、判断変数に0を代入し、大小子５分岐で、ユニット５変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子５分岐を終了する事とし、判断４分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断４分岐を終了する事とし、判断変数に代入された数値が0の場合と1の場合とに分岐する事とし、この分岐を判断５分岐と仮称し、判断５分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う事とし、ユニット５変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入し、算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入し、ユニット６変数に算出倍数変数に代入された数値を代入し、ユニット５の余り変数に算出余り変数に代入された数値を代入し、判断５分岐で、ユニット６変数に代入された数値が254以下の場合と255以上の場合とに分岐する事とし、この分岐を大小子６分岐と仮称し、大小子６分岐で、ユニット６変数に代入された数値が254以下の場合は、分割配列を1byteの型で１５のサイズにリサイズ処理する事とし、分割配列の最初の位置に254を代入し、分割配列の２番目の位置に254を代入し、分割配列の３番目の位置に254を代入し、分割配列の４番目の位置に254を代入し、分割配列の５番目の位置に254を代入し、分割配列の６番目の位置に254を代入し、分割配列の７番目の位置にユニット６変数の数値を代入し、分割配列の８番目の位置にユニット５の余り変数の数値を代入し、分割配列の９番目の位置にユニット４の余り変数に代入された数値を代入し、分割配列の１０番目の位置にユニット３の余り変数に代入された数値を代入し、分割配列の１１番目の位置にユニット２の余り変数に代入された数値を代入し、分割配列の１２番目の位置にユニットの余り変数に代入された数値を代入し、分割配列の１３番目の位置に倍数の余り変数に代入された数値を代入し、分割配列の１４番目の位置に最初の余り変数に代入された数値を代入し、分割配列の最後の位置に、終端マークの255を代入する事とし、判断変数に0を代入し、大小子５分岐で、ユニット６変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子６分岐を終了する事とし、判断５分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断５分岐を終了する事とし、これで、大小１分岐を終了する事とし、分割２分岐で、判断変数に代入された数値が0の場合は、何も処理を行わずに、分割２分岐を終了する事とし、バイナリー形式でファイルを作成して、作成したファイルに分割配列の最初の位置から最後の位置までに代入された1byteづつの数値をファイルの末尾に1byteづつ書き込んでファイルを作成する処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体
【請求項２】
以下に、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、コンピューター本体の内部にある本体メモリーに作成される事とし、以下に、配列の末尾にデーターを代入すると記述している場合があるが、配列の最初の位置に代入する場合でも配列の末尾に代入するという記述をする事があるとし、以下の分岐処理に於いて分岐条件に該当しない場合どうするかを記述していない場合があるが、分岐条件に該当しない場合どうするかを記述していない場合は、何も処理を行わないという事とし、また、コンピューターで普通に使われているテキスト文字（日本国では、ASCIIコード２文字で１文字を表す全角文字とASCIIコード１文字で表す半角文字のこと）をテキスト文字と呼んだり、テキスト文字の事を文字コードまたは、文字と呼んだりする事があるとし、また、２進数の数値を２進数と呼んだり、１０進数の数値を１０進数と略して呼んだりする事があるとし、データーを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター（作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなど）の順番通りに配列に代入する事とし、以下に、配列の型とは、配列に代入する事ができる１個のデーターが使用するコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものであり、変数にも同じく型があるが、変数の型も配列の型と全く同じであるとし、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う事とし、string型で配列や変数を作成して、作成したstring型の配列や変数に文字列や文字を代入すると自動的に文字コードに変換されて配列や変数に代入されるものであるが、この様なstring型の配列や変数の事を文字列を代入する事が出来る配列や変数と表現する事とし、文字列を代入する事が出来る配列を作成する場合は、「何bitのstring型で幾つのサイズで配列を作成する」という表現で配列を作成する事とし、文字列を代入する事が出来る変数を作成する場合は、「何byteまたは、何bitのstring型で変数を作成する」という表現をする事とし、string型ではない配列を作成する場合は、「何bitの型で幾つのサイズで配列を作成する」という表現をする事とし、string型ではない変数を作成する場合は、「何bitの型で変数を作成する」という表現で変数を作成する事とし、以下に、配列番号とは、配列に代入されるデーターの位置を示す番号の事を言うという事とし、配列のデーターを代入できる領域の最初の位置に付けられる番号は、0番となり、順次１づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置に付されるものとし、〔請求項１〕で作成したファイルを復元対象ファイルと呼ぶ事とし、復元対象ファイルを1byteの型で1byteづつ読み込むのに必要なサイズの配列を作成し、この配列を復元対象配列と仮称し、復元対象ファイルをバイナリー形式で開いてファイルに記録されている全ての数値を1byteづつ読み込んで、読み込んだ1byteづつの数値を復元対象配列の最初の位置から最後の位置までに、1byte代入する度に1byte分づつ代入する位置をずらして代入し、計算結果を代入する変数を64bitの型で作成する事とし、この作成した変数を計算結果変数と呼ぶ事とし、復元対象配列の最初の位置に代入された数値が254より小さい場合と254と等しい場合とに分岐する事とし、この分岐をＤ大小分岐と仮称し、復元対象配列の最初の位置に代入された数値を配列１と呼び、復元対象配列の２番目の位置に代入された数値を配列２と呼び、復元対象配列の３番目の位置に代入された数値を配列３と呼び、復元対象配列の４番目の位置に代入された数値を配列４と呼び、復元対象配列の５番目の位置に代入された数値を配列５と呼び、復元対象配列の６番目の位置に代入された数値を配列６と呼び、復元対象配列の７番目の位置に代入された数値を配列７と呼び、復元対象配列の８番目の位置に代入された数値を配列８と呼び、復元対象配列の９番目の位置に代入された数値を配列９と呼び、復元対象配列の１０番目の位置に代入された数値を配列１０と呼び、復元対象配列の１１番目の位置に代入された数値を配列１１と呼び、復元対象配列の１２番目の位置に代入された数値を配列１２と呼び、復元対象配列の１３番目の位置に代入された数値を配列１３と呼び、復元対象配列の１４番目の位置に代入された数値を配列１４と呼び、復元対象配列の１５番目の位置に代入された数値を配列１５と呼ぶ事とし、また、復元対象配列に代入された数値を示す場合に、配列１とか配列２とか配列３という具合に略して配列に代入された数値を示す事があるという事とし、Ｄ大小１分岐で、配列１が254より小さい場合は、計算せずにそのままの数値を計算結果として、計算結果変数に代入する事とし、Ｄ大小１分岐で、配列１が254と等しい場合は、以下の場合に分岐する事とし、この分岐をＤ大小２分岐と仮称し、Ｄ大小２分岐で、配列２が255である場合は、254を計算結果として、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が0と等しくて、配列３が1以上で、配列４が0以上で、配列５が255であった場合は、以下の計算を行う事とし、（配列３×254）＋（配列４）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が1以上で、配列３が1以上で、配列４が0以上で、配列５が255の場合は、以下の計算を行う事とし、（配列２×254×254）＋（配列３×254）＋（配列４）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が254で、配列３が1以上で、配列４が1以上で、配列５が1以上で、配列６が0以上で、配列７が255の場合は、以下の計算を行う事とし、（配列２×254×254×254）＋（配列３×254×254×254）＋（配列４×254×254）＋（配列５×254）＋（配列６）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が1以上で、配列５が1以上で、配列６が1以上で、配列７が1以上で、配列８が0以上で、配列９が255の場合は、以下の計算を行う事とし、（配列２×254×254×254×254）＋（配列３×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254）＋（配列６×254×254）＋（配列７×254）＋（配列８）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が1以上で、配列６が1以上で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が0以上で、配列１１が255の場合は、以下の計算を行う事とし、（配列２×254×254×254×254×254��＋（配列３×254×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254×254×254）＋（配列６×254×254×254×254）＋（配列７×254×254×254）＋（配列８×254×254）＋（配列９×254）＋（配列１０）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が254で、配列６が1以上で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が1以上で、配列１１が1以上で、配列１２が0以上で、配列１３が255の場合は、以下の計算を行う事とし、（配列２×254×254×254×254×254×254）＋（配列３×254×254×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254）＋（配列６×254×254×254×254×254×254）＋（配列７×254×254×254×254×254）＋（配列８×254×254×254×254）＋（配列９×254×254×254）＋（配列１０×254×254）＋（配列１１×254）＋（配列１２）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が254で、配列６が254で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が1以上で、配列１１が1以上で、配列１２が1以上で、配列１３が1以上で、配列１４が0以上で、配列１５が255の場合は、以下の計算を行う事とし、（配列２×254×254×254×254×254×254×254）＋（配列３×254×254×254×254×254×254）＋（配列４×254×254×254×254×254）＋（配列５×254×254×254×254）＋（配列６×254×254×254）＋（配列７×254×254×254×254×254×254×254）＋（配列８×254×254×254×254×254×254）＋（配列９×254×254×254×254×254）＋（配列１０×254×254×254×254）＋（配列１１×254×254×254）＋（配列１２×254×254）＋（配列１３×254）＋（配列１４）を算出して、計算結果変数に代入する事とし、Ｄ大小２分岐で、分岐条件に該当しない倍は、エラーとして計算結果変数に-1を代入して、Ｄ大小２分岐を終了する事とし、Ｄ大小１分岐で、分岐条件に該当しない場合は、エラーとして計算結果変数に-1を代入して、Ｄ大小１分岐を終了する事とし、計算結果変数に代入された数値を表示するという処理をコンピューターに実行させるプログラムを記録したコンピューターが読み取る事が可能な記録媒体
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューターで使用するファイルから圧縮ファイルや差分ファイルを作成する際にデーターを記録するが、その記録データーの記録方法に関する
【背景技術】
【０００２】
圧縮技術に関する文献としては、〔非特許文献１〕と〔非特許文献２〕がある。
【非特許文献１】奥村晴彦・山崎敏  著  LHAとZIP  圧縮アルゴリズム×プログラミング入門  ソフトバンク  パブリッシング株式会社  2003/12/6初版
【非特許文献２】亀山渉  金子格  渡辺裕  著  そこが知りたい最新技術  オーディオ・ビデオ圧縮技術入門  株式会社インプレスR&D2007年4月1日初版第1刷発行
【０００３】
〔非特許文献１〕は、ZIP形式の圧縮技術とLZH形式の圧縮技術を説明した文献である。それとともに、今日までに開発された圧縮技術を紹介している文献である。この文献では、LZH形式の圧縮技術の場合は、2byteの記録サイズに２進数で記録する方法を紹介している。ZIP形式のの圧縮技術の場合は、4byteの記録サイズに２進数で記録する方法を紹介している。しかし、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の様な２進数で表現された数値を254や255の倍数や乗数と余りという数値を算出して記録する方法は一切記載されていない。
【０００４】
〔非特許文献２〕は、基礎的な圧縮技術として可逆圧縮と非可逆圧縮の説明がされている。その説明の後でJPEG形式の圧縮技術やMPEG形式の圧縮技術やH.264/AVC形式の圧縮技術などの圧縮技術を説明している。しかし、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の様な２進数で表現された数値を254や255の倍数や乗数と余りという数値を算出して記録する方法は一切記載されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、倍数乗数分割ソフトウェアを記録した記録媒体という題名であるが、コンピューターに実行させる倍数乗数分割ソフトウェアを記録したコンピューターが読み取る事が可能な記録媒体の事である。また、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の事を倍数乗数分割ソフトウェアと略して記述する事がある。
【０００６】
また、コンピューターで普通に使われているテキスト文字（日本国では、ASCIIコード２文字で１文字を表す全角文字とASCIIコード１文字で表す半角文字の事）を、テキスト文字と略して記述する事とする。また、テキスト文字の事を文字コードという事がある。また、コンピューターで普通に使われている機械語を機械語と略して記述する事とする。コンピューターで普通に使われている機械語とは、コンピューターに搭載されているCPUと呼ばれる中央演算処理装置が処理を予定している命令文の事を言う。
【０００７】
コンピューターで使用されている機械語の中でも特に、二進化十進数と呼ばれる２進数で数値を表す機械語がある。この二進化十進数は、BCD数とかEBCDIC数とか3増し符号などで使用されている２進数で表現した機械語である。従来から在る二進化十進数に相当する２進数の事を全て二進化十進数と呼ぶ事とする。従来から在る二進化十進数に相当する２進数には、BCD数やEBCDIC数や3増し符号などがある。
【０００８】
また、２進数の数値を２進数値と呼んだり、１０進数の数値を１０進数値と呼んだりすることがある。また、配列とは、データーを１個から複数のデーターを代入する事が出来るものを言い、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う。配列のサイズの事を配列サイズと言ったりする事がある。配列に代入したデーターの事を配列要素または、配列の要素と呼び、配列要素または、配列の要素の合計数を配列要素数または、配列の要素数と呼ぶ事とする。また、配列のサイズの事を配列サイズと呼ぶ事がある。配列の型とは、配列に代入する事ができる１個のデーターがコンピューターに在る本体メモリーで使用するbit数または、byte数を意味するものである。この型は、配列を作成する場合に指定するものであり、作成する配列のデーターを代入する事ができる領域の全てに適用されるものである。前述の「領域の全てに適用されるものである」という意味は、型の違うデーターを配列のデーターを代入する事ができる領域に混在させることが出来ないという事である。配列を作成する場合に、「何bitの型で幾つのサイズで配列を作成する」という表現をする事とする。これを8bitの型で10の配列サイズで配列を作成するという表現で説明している場合で意味を説明する。この場合は、配列の要素１個に8bitのデーターを１個代入できる様なものとして、配列要素数10個で配列を作成するという意味である。
【０００９】
変数にも配列と同じく型が存在し、変数の型の意味は、配列の型の場合と全く同じである。「何bitの型で変数を作成する」という表現で変数を作成する事とする。8bitの型で変数を作成するという表現で説明している場合の意味は、8bitのデーターを代入する事ができる変数を作成するという事である。また、配列のインデックスとは、配列の添字または、配列番号などとも呼ばれる事があるものである。以降、配列のインデックスを配列の添字または、配列番号と呼ぶ事がある。配列を作成する時点で配列のインデックスを何番から作成するという具合に配列のインデックスを指定せずに配列を作成すると通常、配列のデーターを代入できる領域の最初の位置に付けられるインデックスは０番となり順次１づつ番号が増えた数値が配列のデーターを代入できる各々の配列の位置にコンパイラによって自動的に付けられるものである。つまり、言い換えると配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事になる。これによって、プログラマーは、配列のインデックスを指定する事で簡便に配列に代入されたデーターの位置を指定する事ができる様にしているものである。
【００１０】
配列のインデックスを取得する場合は、以下の様な処理を行う事で取得する。1byteの変数を作成してこの作成した変数を仮変数と呼ぶ事として、仮変数に0を代入して初期化する。配列に代入されたデーターが全て1byteであると仮定して配列のインデックスを取得する処理工程の説明を行う事とする。配列の最初の位置に代入されているデーターから最後の位置までに代入されたデーターを1byteづつ読む度に仮変数に代入された数値に1を加算する事で回数をカウントするという処理を行うと、仮変数に代入された数値と配列のインデックスとが対応した数値になるので仮変数に代入された数値が配列のインデックスとなるので、仮変数に代入された数値を取得するのが配列のインデックスの取得方法である。また、配列のデーターを代入する事ができる領域の最初の位置という表現を配列の最初の位置という様に略した表現を行う場合がある。また、配列のデーターを代入する事ができる領域の最後の位置とい表現を配列の最後の位置という様に略した表現を行う場合がある。
【００１１】
string型で配列や変数を作成する場合がある。string型とは、文字列を代入する事ができる配列や変数の型を意味するものである。言い換えるとstring型とは、文字列型と言う言い方が出来るものである。string型で配列や変数を作成して、作成したstring型の配列や変数に文字列や文字を代入すると自動的に文字コードに変換されて配列や変数に代入されるものである。従って、string型とは、文字や文字列を代入する事が出来る配列や変数の型をstring型と言う事が出来るものである。実施例で使用しているMicroSoft株式会社の（商標）Visual Stadio2005 C#というコンパイラを使用した場合は、string型で変数を作成すると約２０億個の文字コードで出来た文字を代入出来るサイズで変数が作成される。つまり、約２０億byteの変数が作成される。作成された変数は代入される文字列の文字数によって、自動的にメモリーの使用量が変更されるようになっている。string型で変数を作成する場合と同じく、配列の型をstring型で作成する場合も自動的に１個のデーターを代入する事が出来る領域のサイズが代入された文字コードの文字数分のサイズに可変する配列が作成される。１個のデーターを代入する事が出来る領域のサイズは、string型で変数を作成した場合と同様に約２０億個の文字コードによって表現される文字を代入出来る変数になるのであるが、その作成された変数に文字列を代入するとその文字列を代入するのに必要な最小限度のサイズに自動的にサイズ変更されるようになっている。この様にstring型で変数や配列を作成するとメモリーの使用領域が自動的に代入されるデーターの量によって変化するものになっている。使用するコンパイラによっては、この様な自動的に代入される文字列の文字数によって変数のサイズを変更する機能が無い場合がある。そこで、本発明の明細書では、string型で配列や変数を作成する場合、型として使用するメモリー使用量を指定する事とする。MicroSoft株式会社のVisual Stadio2005 C#というコンパイラを使用した場合、実際には、型として使用するメモリー使用量を指定して変数や配列を作成する事はできない。string型と呼ばれる文字列を代入する事が出来る配列を作成する場合の表現は以下の様になる。「何bitのstring型で幾つのサイズで配列を作成する」という表現で配列を作成する事とする。string型と呼ばれる文字列を代入する事が出来る変数を作成する場合の表現は以下の様になる。「何byteまたは、何bitのstring型で変数を作成する」という表現をする事とする。言い換えると、1byteのstring型で変数を作成するとか、2byteのstring型で変数を作成するとか、8bitのstring型で変数を作成するとか、16bitのstring型で１０のサイズで配列を作成すると記述する事とする。16bitのstring型で１０個のサイズで配列を作成すると記述した場合は、配列の１個のデーターを代入する事が出来る領域の１個のデーターが使用するメモリー量が2byteであるとし、１０個のデーターを代入する事が出来る配列を作成するという事である。この16bitのstring型で１０個のサイズで配列を作成する場合のメモリーの総使用量は、16bit×10という計算が可能となり、答えは、160bit(または、20byte)となる。
【００１２】
配列のインデックスを取得する方法について例を示して詳しく説明する。配列のサイズが１０の配列の場合で説明する事とする。配列のサイズが１０の配列を作成するとインデックスは、０から９までの数値がコンパイラと呼ばれるプログラムを書く為に一般的に使われるプログラムによって自動的に付けられる。０から９までの数値が配列のインデックスとなるのである。そのインデックスを取得する方法は無い。そこで、最初の位置から配列の最後の位置までの連番として「0,1,2,3,4,5,6,7,8,9」という0番から9番までの連番を作成して、その連番の中から１個づつ順番に数値を取得する事で実現するものである。配列の位置を指定する時に配列のインデックスを指定する事はできるが、その反対に代入されたデーターからインデックスを取得する事は出来ない。代入されたデーターの位置を０から１づつ数値を積算する事で得た数値をインデックスと同じ数値として使用するというのが普通のインデックスと呼ばれる数値の取得方法である。
【００１３】
バイナリー形式でファイルを読み込むという場合は、1byteづつ文字コードとして配列に読み込む事を言う事とする。以下に、配列の最初の位置から代入する度に代入する位置を１つづつずらして、１つづつデーターを配列に代入するという具合に１つづつという表現で説明している場合があるが、正確な表現では、バイナリー形式でファイルを読み込んでいる場合は、1byteづつである。注目配列の位置を１つずらすという表現を行っている場合の１つ分の意味も１つづつという表現で説明している場合と同じ意味であるり、ずらすサイズは、配列の型として定義しているか、または、代入されているデーターのサイズ1個分の事で、1byteや2byteや3byteや4bitや10bitなどの数値量となる。また、ファイルを作成する時も形式指定がある。バイナリー形式でファイルに記録して保存する場合とテキスト形式でファイルに記録して保存する場合である。バイナリー形式でファイルに記録して保存する場合に使う表現のデーター１つづつは、1byteづつとなる。テキスト形式でファイルに記録して保存する場合に使う表現のデーター１つづつは、2byteづつとなる。但し、配列や変数に1bitづつデーターを代入している場合や4bitづつデーターを代入している場合もある。この配列や変数に1bitづつデーターを代入している場合のデーターの１つづつとは、1bitづつとなり、4bitづつデーターを代入している場合のデーターの１つづつとは、4bitづつとなる。また、1byteづつデーターを代入している場合のデーターの１つづつとは、8bitづつとなる。
【００１４】
LZH形式の圧縮技術に於いては、数値を2byteのサイズに２進数で記録する方法である。圧縮対象ファイルを16kbyteづつに分割してブロックごとに圧縮処理するというのがLZH形式の圧縮技術である。圧縮処理後の各々のブロックのサイズを2byteで圧縮ファイルに記録するという方法である。現在のパーソナルコンピューターと呼ばれる小型のコンピューターでは、ファイルに記録する場合、8biを1byteと呼び、1byteでしか２進数を記録できない為に、圧縮する際に分割したデーターのサイズを記録する場合に問題が発生する。LZH形式の圧縮技術で使用している方法だと、2byteで表現できる最大値は、65535なので、65535×16kbyteが圧縮対象ファイルとして指定できる最大サイズのファイルとなる。分割した数を記録するにも2byteのサイズを使用するからである。ZIP形式の圧縮技術に於いては、数値を4byteのサイズに２進数で記録する方法である。圧縮対象ファイルを32kbyteづつに分割してブロックごとに処理する事で、その圧縮情報データーの数値を２進数で4byteのサイズに収まるようにしている方法なのである。LZH形式の圧縮技術と違う点として、ZIP形式の圧縮技術では、分割された各ブロックにブロック終了コードが記述されている点である。しかし、ブロック終了コードは、圧縮ファイルを読み込んで復元する際に、ブロックごとに読み込む為の目印である。このブロック終了コードには、256という２進数の数値で表現した数値コードを使用している方法である。
【００１５】
LZH形式の圧縮技術とZIP形式の圧縮技術の両方に於いて言える事であるが、2byteや4byteの記録サイズを固定で使用している点で問題が発生する。0から255までの数値は、コンピューターで仕様している普通の文字コード（日本国の場合は、0から255までの２進数で作られたASCIIコード）で記録した場合は、1byteで記録する事ができる。しかし、255を超える数値を1byteに記録する事はできない。しかしながら、255を超える数値を記録するのに2byteや4byteに分割した２進数で記録する技術を圧縮技術で使用すると、ファイルに記述されているデーターの位置を示す数値を小さくする事が出来るという事が大きな圧縮率を生むのでファイルを細かく分割した方が比較的効率の良い圧縮が行えるという事になる。しかしながら、あまり細かく分割すると処理が細かくなり、圧縮に使用したスライド辞書も分割した分だけ必要になるので、処理が低速でしかも、圧縮率が低いものになり易いという相反する効果を生んでしまうのである。普通に1byteのサイズに分割したのでは余りに分割したブロックの数が多くなりすぎるから2byteや4byteで表現できる最大値をファイルの分割サイズとしているのである。LZH形式の圧縮技術では、0から65535までの数値を2byteのサイズに記録する方法を使用して圧縮されたブロックのサイズを記録しているので、ファイルを分割したブロックの最後の位置に終了コードを付加していない。2byteや4byteのサイズに分割して、分割したサイズを記録する方法で、圧縮対象ファイルや差分ファイル作成対象ファイルを2byteや4byte の最大値で分割して圧縮ファイルや差分ファイルを作成する様な処理で圧縮ファイルや差分ファイルを作成すると、圧縮ファイルや差分ファイルを作成する場合に作成可能な圧縮対象ファイルや差分対象ファイルの最大ファイルサイズが発生してしまう、という問題がある。ZIP形式の圧縮技術でも同じ問題が発生している。処理可能な圧縮対象ファイルや差分対象ファイルの最大ファイルサイズが発生してしまう、という問題を解決する方法が無いのが現状である。JPEG形式(JPG形式)の圧縮技術でも同じような問題が発生するであろうと思われる。
【００１６】
画像と文字列が混在したファイルの事をドキュメントファイルと呼ぶ事とする。また、テキスト文字で構成されたファイルでも殆どの文字が全角文字だけの文字で構成されたファイルと殆どの文字が半角文字だけの文字で構成されたファイルとがあるが、各々を全角ファイル、半角ファイルと呼ぶ事とする。全角文字だけの部分と半角文字だけの部分が混在する様な構成のファイルなどもあるが、全角文字だけの部分と半角文字だけの部分が混在する様な構成のファイルを半全ファイルと呼ぶ事とする。機械語で書かれたファイルを実行ファイルと呼ぶ事とするが、実行ファイルにも画像部分や文字列部分が多く含まれている場合があり、画像や文書が多く含まれた実行ファイルを画文実行ファイルと呼ぶ事とする。
【００１７】
現在の圧縮技術では、データーの種類によって、圧縮率が大きく違うという問題がある。データーの種類とは、例えば、文字列部分や画像部分や機械語の部分などの事である。テキスト文字でも、全角の文字列部分と半角の文字列部分とでは圧縮率が違ってくるし、画文実行ファイルでも画像の部分と文字列の部分と機械語の部分とでは圧縮率が違ってくる。ドキュメントファイルを例に説明する。現在の圧縮技術では、固定長の2byteのサイズや4byteのサイズに分割する方法を使用して圧縮しているのである。固定長の2byteのサイズや4byteのサイズでドキュメントファイルを分割すると、画像の部分と文字列の部分とに完全に分割できない為に圧縮率が低くなってしまうという問題が発生する。固定長のサイズでファイルを分割する事で圧縮率が低下するという問題は、ドキュメントファイル以外の半全ファイルや画文実行ファイルでも同じ様に発生する。
【００１８】
固定長の2byteのサイズや4byteのサイズに分割する方法で、画像部分や文字列部分が混在する様なファイルを分割する事で圧縮率が低下するという問題の解決を行うには、分割したブロックの終了を表す終了コードを分割したブロックの最後の位置に付けるだけではなく、色々なサイズに分割しているので分割したサイズを完成した圧縮ファイルのどこかに記録しなければならなくなるという問題が発生する。この問題は、圧縮率を悪くする大きな問題である。
【課題を解決するための手段】
【００１９】
255を超える数値を254で割って、倍数で記録し、その倍数が254を超える場合は、乗数で記録し、余りがあれば余りを記録するという数値分割処理を行う事で、従来形式の2byteや4byteのサイズに分割したファイルのサイズを記録するという固定長の分割処理しか出来ないという不便さというか柔軟性の無い圧縮技術であったのを可変長のファイル分割サイズにする事で柔軟な圧縮技術を適用する事ができる様に改善する。LZH形式の圧縮技術や他の形式の圧縮技術での扱えるファイルのサイズ限界を無くして利便性を高める。
【００２０】
本発明の倍数乗数分割ソフトウェアを記録した記録媒体で大きな数値を乗数や倍数や余りという数値に分割する工程を分割工程と呼ぶ事とする。本発明の倍数乗数分割ソフトウェアを記録した記録媒体の分割工程で作成した数値を元の数値に戻す処理工程を復元工程と呼ぶ事とする。また、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の分割工程で、作成される数値データーの事を数値の並び、数値の並び方と呼んだり、作成される数値、作成した数値と表現したりする。
【００２１】
分割工程の説明を行う事とする。255を超える数値を254で割って、倍数で記録し、その倍数が254を超えた場合は、倍数の倍数を算出するという方法で計算した結果を配列に代入して、それをファイルに記録する工程を分割工程とする。詳しくは、実施例で説明する事とする。分割した数値データーの最後の位置を表す為に使用するマークを終端マークと呼ぶ事とする。実施例では、255という数値を終端マークに使用した。分割するブロックのサイズを変更する事で任意に決める事が可能な数値である。また、実施例では、他の数値を分割したデーターとを区別する為に終端マーク以外にもう１つのマークを使用しているが、終端マーク以外に使用しているもう１つのマークは、各ブロックの区切りの良い位置などに挿入するマークとして使用している。各ブロックの区切りの良い位置などに挿入するマークなので、これを中間マークと呼ぶ事とする。中間マークは、任意に決める事ができる数値である。実施例で使用した中間マークは、0である。
【００２２】
実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールは、以下の通りである。分割する事で算出した数値を記述する最大値を254として、254の倍数や乗数と余りで表現する事とし、中間マークは、0とし、終端マークは、255とし、倍数や乗数で表現する場合は、一番大きな倍数に当る数値から順番に記述する事とし、253以下の数値には、終端マークを付加しない事とし、253以下の数値の場合は、そのままの数値を最初の位置に記述する事とし、254の場合は、そのままの254を最初の位置に記述して、必ず、最後の位置に終端マークを付加する事とし、2倍から254倍を超えない数値の場合は、終端マークを数値の並びの最後の位置に付加する事とし、2倍から254倍を超えない数値の場合は、最初の位置に記述された254は、数値であるという事とし、中間マークを数値の並びの２番目の位置に挿入して、他の数値を分割した場合に算出される他の数値の並びと区別する事とし、乗数で表現しなければならない大きな数値を分割した場合に算出される数値の最後の位置には、終端マークを必ず付加する事とし、乗数で表現しなければならない大きな数値を分割した場合に算出される数値の最初の位置に254という数値があった場合は、254乗という様な意味を持つ数値であって、254という数値ではない、254の254乗という意味で、254は、解かっている事だから明記する必要が無いので割愛する事とする、というのが実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールである。
【００２３】
実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールで説明している、「乗数で表現しなければならない大きな数値を分割した場合に算出される数値の最初の位置に254という数値があった場合は、254乗という様な意味を持つ数値であって、254という数値ではない」という意味は、254という数字は、最大値まで乗数が在るという事を意味するものであって、その乗数の元になる数値を意味しないという意味である。この事は、一番大きな乗数に当る数値から順番に記述する事をルールにしている事からも理解できると思う。実施例の復元工程の乗数以上を使用しないと表現できない数値の復元工程の計算式を参照すれば、一目瞭然である。また、実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールに、「中間マークを数値の並びの２番目の位置に挿入して」とあるが、分割配列の最初の位置から1byteづつ数えて２番目の位置に代入するという意味である。分割配列は、1byteづつデーターを記述する配列なので２番目の位置は、2byte目の位置という事になる。
【００２４】
この実施例で使用している分割工程で分割配列にデーターを代入する場合のデーターの記述ルールに従って処理して、ファイルを作成するという事が解かっているので、復元工程では、解かっているルール化された部分をファイルに記録しない事としている。つまり、最大値を245にして、終端マークを255にして、中間マークを0にして、終端マークをどの計算式によって作成されたデーターに付加するのか、中間マークの位置を何処にするのか、といったルールは、作ったファイルに記述しなくても復元出来るのでファイルに記述していないという事である。
【００２５】
また、全ての分割した場合に算出される数値の最後の位置に、255という終端マークを付加する事でも分割処理して記録する事ができるが、この方法も、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の単純なレパートリーである事を明言する。復元工程では、数値の並び方というパターン解析処理を行って元の数値に戻すという復元工程としているので、終端マークの255が絶対的に必要なものではないのである。従って、実施例で使用している終端マークは、本発明の倍数乗数分割ソフトウェアを記録した記録媒体に絶対的に必要な構成要件ではない事を明言する。
【００２６】
元の数値に戻す計算処理を行う復元工程の説明を行う事とする。分割工程で作成した、分割されたデーターが代入された配列を検査して完全一致を条件に分岐し、その分岐ごとに計算処理する事で元の数値に戻す処理を行う事とする。本発明の倍数乗数分割ソフトウェアを記録した記録媒体の実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールに従って作成されたファイルを読み込んで処理するので、実施例での分割工程で分割配列にデーターを代入する場合のデーターの記述ルールに従って復元工程を行う事になる。詳しくは、実施例で説明する事とする。
【００２７】
本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、２進数で表現された数値を254や255の倍数や乗数と余りという数値を算出して記録する方法であるが、254や255という数値は、例示しているだけである。２進数で8bitの桁数で表記できる最大値が255なのである。現在、一般的に使用されているパーソナルコンピューターで使用しているファイルの記録形式は0から255までの8bitの桁数で表記された２進数だけが使用できるものとなっている。その為、255を超える大きな数値をパーソナルコンピューターで使用しているファイルに記録するには全て255以下の数値に変更する必要がある。255を超える大きな数値を255以下の数値に変更する為に254や255の倍数や乗数と余りを算出してファイルに記録する事であって、テキスト形式で記録するという事ではない。本発明の技術によって、8bit（1byte）を超える２進数を効率良く8bit（1byte）の桁数の２進数でファイルに記録する事が可能になるのである。254の倍数や乗数とする理由は、記録数値の終端マークを表す為に255を使用してしまうので終端マークに使用していない254を最大値として使用して254の倍数や乗数を使用しなければならなくなるからである。終端マークを表す数値だけではなく他の数値を何かに使用した場合はもっと、小さな数値の倍数や乗数を使用する事になるので、253や252といった数値の倍数や乗数や余りという数値と終端マークを表す数値の組み合わせで記録する方法も本発明の倍数乗数分割ソフトウェアを記録した記録媒体のレパートリーであるという事を明言する。また、使用しない数値を設けて区切の良い数値(例えば200という数値)で倍数や乗数や余りを算出して使用しない数値の中から１個の数値を任意に抽出して終端マークを表す数値として使用して記録する方法や、数個の中間マークを作成して処理する方法や、終端マークと中間マークの組み合わせを変更する事で実現する方法も本発明の倍数乗数分割ソフトウェアを記録した記録媒体である事を明言する。また、負数を表現する数値を使用したり、正数を表現する数値を使用していたり、負数と正数を表現する任意の数値を２個抽出して使用したりしている場合も本発明の倍数乗数分割ソフトウェアを記録した記録媒体の単純なるレパートリーである事を明言する。
【００２８】
また、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の処理をシフト演算処理する事でも同じ事ができるが、シフト演算処理やシフト演算処理に類する他の演算処理を行ったとしても単純なレパートリーである事を明言する。
【発明の効果】
【００２９】
コンピューターで使用されているファイルを圧縮する場合や、コンピューターで使用されているファイルの差分ファイルを作成する場合に、記録しなければならないデーターが255を超えた場合に、従来の方法だと、固定長の2byteのサイズに記録する方法や4byteのサイズに記録する方法等で圧縮ファイルや差分ファイルに記録するので、処理対象ファイルを2byteまたは、4byteの固定長のサイズで分割するので扱えるファイルの最大サイズの限界が発生するという問題があったが、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の技術を使用する事で、扱えるファイルの最大サイズの限界が発生するという問題が解決する。
【００３０】
また、ZIP形式の圧縮技術では、圧縮対象ファイルを分割し、各々のブロックを圧縮処理した後に、各々のブロックの終了位置に終了コードを付加するというものである。読み込む時の目印としての使用である。本発明の倍数乗数分割ソフトウェアを記録した記録媒体でも、255や他の任意の数値を選択して、選択した数値を終端マークとして用いている。しかし、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の終端マークは、ZIP形式の圧縮技術で使われている終了コードとは全く違うものである。ZIP形式の圧縮技術で使われている終了コードを使用している対象は、圧縮対象のファイルを数個に分割処理したデーターの１個づつの終了位置を表すものである。本発明の倍数乗数分割ソフトウェアを記録した記録媒体で使用している終端マークは、数値を乗数や倍数や余りで分割して記録した部分の終端を表すものである。本発明の終端マークは、数値を乗数や倍数や余りで分割して記録した部分の終端を表す、という特性を持つ終端マークなので、終端マークを探し出す事で元の数値を算出できる事になり、どんな大きな数値であっても終端マークを探し出して、探し出した終端マークまでを処理して元の数値を算出する事ができる様になるものであるが、終端マークが絶対的に必要なものとは言えないものである。中間マーク等によって置き換える事も可能なものである。数値に対して付加してパターンを作成するというものなので、ZIP形式の圧縮技術で使用している終了コードによる効果とは大きく効果が違ってくる。本発明の技術を圧縮技術に使用した場合は、圧縮対象とする事ができるファイルの最大サイズという上限が無くなるのである。また、本発明の技術を圧縮技術に使用した場合は、圧縮率を最大にする為にファイルの分割サイズを変化させても分割したサイズをどこにも記録する必要が無くなるのである。ドキュメントファイルで画像部分と文字列部分の切れ目ごとにファイルを分割処理する場合や、画文実行ファイルで画像部分と文字列部分と機械語の部分との切れ目で分割処理する場合や、半全ファイルの半角文字列部分と全角文字列部分との切れ目で分割処理する場合などに、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の技術を使用する事で柔軟な分割サイズを指定する事が可能になるので、最大パフォーマンスと思われる高圧縮率の圧縮が可能になる。これらのZIP形式の圧縮技術との技術的な効果の違いは、本発明の倍数乗数分割ソフトウェアを記録した記録媒体の技術は、数値を分割処理する為の技術であって、ファイルの終了位置を記す事を目的とする技術ではないという事による違いである。
【図面の簡単な説明】
【００３１】
【図１】倍数乗数分割ソフトウェアのフローチャート図
【図２】倍数乗数分割ソフトウェアの操作画面図
【図３】倍数乗数分割ソフトウェアで数値を分割処理後の操作画面図
【図４】倍数乗数分割ソフトウェアで数値を分割処理後に復元工程を処理後の操作画面図
【図５】倍数乗数分割ソフトウェアで使用した機材の説明図
【発明を実施するための形態】
【００３２】
図５は、実際とは、多少異なる事を明記する。本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、図５の＜倍数乗数分割ソフトウェアで使用した機材の説明図＞に示した様なハードウェア資源で動作するプログラムである。図５の＜倍数乗数分割ソフトウェアで使用した機材の説明図＞に示した様なハードウェア資源は、図符号Ｂのコンピューター本体と図符号Ａのモニターと図符号Ｃのキーボードと図符号Ｄのマウスの合計４個のパーツで構成された機材であるが、これらの合計４個のパーツで構成された機材を一般的にコンピューターと呼んでいる。図符号Ｂのコンピューター本体は、パーソナルコンピューターと一般的に呼ばれているコンピューターである。図符号Ｂのコンピューター本体には、ハードディスクドライブなどの記録媒体やCPUや本体メモリーなどと呼ばれる装置が内蔵されており、本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、図符号Ｂのコンピューター本体内部に在るハードディスクドライブなどの記録媒体にインストールされているものとする。図符号Ｂのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明の倍数乗数分割ソフトウェアを記録した記録媒体がインストールされていて、図符号Ｂのコンピューター本体から本発明の倍数乗数分割ソフトウェアを記録した記録媒体を起動する事が出来る場合は、図符号Ｂのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明の倍数乗数分割ソフトウェアを記録した記録媒体がインストールされているものとする。本発明の倍数乗数分割ソフトウェアを記録した記録媒体がインストールされている図符号Ｂのコンピューター本体内部に在るハードディスクドライブなどの記録媒体または、図符号Ｂのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体にインストールされている本発明の倍数乗数分割ソフトウェアを記録した記録媒体を起動すると本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、図符号Ｂのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれる。図符号Ｂのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれた本発明の倍数乗数分割ソフトウェアを記録した記録媒体に書かれたCPUが処理を予定している命令文が必要な時に必要量CPUに読み込まれ、そのCPUに読み込まれた命令文がCPUによって実行される事によってコンピューターによって本発明の倍数乗数分割ソフトウェアを記録した記録媒体が動作する。従って、本発明の倍数乗数分割ソフトウェアを記録した記録媒体がハードウェア資源を利用してどのような工程で処理されるのかを簡単な表現で説明すると、本発明の倍数乗数分割ソフトウェアを記録した記録媒体に書かれた命令文は、コンピューター本体のCPUによって処理されると表現しなおす事ができるのである。
【００３３】
図５の＜倍数乗数分割ソフトウェアで使用した機材の説明図＞に示した様なハードウェア資源で動作するソフトウェアであると段落〔００４７〕にて説明したが、コンピューターの形状は、図５の＜倍数乗数分割ソフトウェアで使用した機材の説明図＞に示した様なハードウェア資源に限定できるものではなく、図符号Ａのモニター、図符号Ｂのコンピューター本体、図符号Ｃのキーボード、図符号Ｄのマウスが一体化したものや、図符号Ｄのマウスが存在しない構成のものや、図符号Ａのモニター、図符号Ｂのコンピューター本体の二つを一体化した構成のもの等いろいろある。今後、もっと多くのいろいろな形状のコンピューターが開発されていくであろうと考えられる。図５の＜倍数乗数分割ソフトウェアで使用した機材の説明図＞に示した様なハードウェア資源でなくても、類似と言い得る、いわゆるコンピューターを使用して本発明の倍数乗数分割ソフトウェアを記録した記録媒体で動作させている場合も本発明の倍数乗数分割ソフトウェアを記録した記録媒体である事を明言する。
【実施例】
【００３４】
図２、図３、図４、図５は、実際とは、多少異なる事を明記する。以下の段落に於いて、配列や変数などを作成すると記述しているが配列や変数などが作成される場所は、図符号Ｂのコンピューター本体の内部にある本体メモリーに作成される。但し、ＯＳと呼ばれるソフトウェアによって仮想メモリー領域に作成される場合もある。仮想メモリー領域とは、図符号Ｂのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Ｂのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事を言う。この図符号Ｂのコンピューター本体の内部にある本体メモリーまたは、図符号Ｂのコンピューター本体の内部にあるハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Ｂのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事をコンピューター内部のメモリー装置と呼ぶ事とする。従って、配列や変数などを作成すると記述している場合の配列や変数などが作成される場所を端的な表現をして説明するならば、コンピューター内部のメモリー装置内に作成されるという表現になる。
【００３５】
以下の段落に於いて、配列の末尾にデーターを代入すると記述している場合がある。未だに配列に代入されたデーターが無い場合は、普通、配列の最初の位置にデーターを代入するものとする。1byteの型で作成された配列の場合で説明する。配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、データーを1byteづつ代入していく場合、配列の最初の位置にデーターを代入した後は、配列に代入されたデーターの最後の位置にあるデーターの次の位置に代入するという事になる。この場合、配列の最初の位置に既にデーターを代入した後の位置の指定を末尾と表現する事が出来る。未だに配列に代入されたデーターが無い場合で、配列の最初の位置から代入する度に1byteづつ代入する位置をずらして1byteづつデーターを配列に代入していく場合で、配列の最初の位置にデーターを代入する場合でも、配列の末尾にデーターを代入すると表現する事が出来ると考えられる。配列の最初の位置から代入する度に1byteづつ代入する位置をずらして、1byteづつデーターを配列に代入していく場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述している場合がある。また、ファイルに書き込む場合でも、配列の末尾にデーターを代入するのと同じなので、ファイルの末尾に書き込むという記述をしている場合がある。
【００３６】
以下の段落に於いて、配列の最初の位置から代入する度に数byteづつまたは、数bitづつ代入する位置をずらして、数byteづつまたは、数bitづつデーターを配列に代入していく場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター（作成したデーター、取得したデーター、読み込んだデーター、元の配列に代入されたデーターなど）の順番通りに数byteづつまたは、数bitづつ配列に代入するものとする。
【００３７】
以下の段落に於いて、全て一次元配列を利用してプログラムを作成しているが、多次元配列を利用する事や、ファイルを利用する事でも同じ処理が出来ると考えられる。また、一次元配列と多次元配列とファイルの組み合わせによっても、同じ処理が出来ると考えられる。これらはプログラムの書き方の違いであって、全て本発明の倍数乗数分割ソフトウェアを記録した記録媒体の単純なレパートリーでしかないという事を明言する。
【００３８】
配列のサイズの調整なども当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。また、配列の型の変換処理なども当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。また、変数の型の変換処理についても当該事業者にとって常識的な技術であると考えられる事であるから何も書いていない場合がある。
【００３９】
図１の＜倍数乗数分割ソフトウェアのフローチャート図＞を参照の事。図符号Ｌと図符号Ｍには、ステップ番号を右肩位置に付してあるが、その右肩位置に付したステップ番号順に説明する事とする。まず、本発明の倍数乗数分割ソフトウェアを記録した記録媒体を起動すると、図２の＜倍数乗数分割ソフトウェアの操作画面図＞の様な操作画面が図符号Ａのモニターに表示される。
【００４０】
ステップ１００に進む。ステップ１００は、人為的な手動による操作または入力処理工程である。本発明の倍数乗数分割ソフトウェアを記録した記録媒体が処理可能な数値は、少数を含まない正数で、0から9,223,372,036,854,775,807までの数値である。普通数値なので３桁づつに区切る様な事はしないが、読みやすい様に３桁づつ区切って記述する事にした。9,223,372,036,854,775,807を２進数に変換すると64桁の0と1で構成された２進数になる。図符号Ｅの＜分割するデーターを入力するテキストボックス＞に図符号Ｃのキーボードなどの入力デバイスを使用して0から9,223,372,036,854,775,807までの小数点以下の数値を含まない正数値の中から任意の数値を決めて入力する。この入力した任意の数値を255以下の数値に分割する処理を実行させる事とする。次に、図符号Ｇの＜分割データーの作成ボタン＞を図符号Ｄのマウスなどの入力デバイスを使用してクリックし処理を開始する。
【００４１】
ステップ１０１に進む。ステップ１０１は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。64bitの型で変数を作成し、この変数を元データー変数と仮称する。この元データー変数に、図符号Ｅの＜分割するデーターを入力するテキストボックス＞に入力された数値を代入する。元データー変数に代入された数値対して以下の分割工程を実行させる。
【００４２】
ステップ１０２に進む。ステップ１０２は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。終端マークとして0から255の中から任意の特別視できる数値を抽出して終端マークとして使用する事とする。本発明の倍数乗数分割ソフトウェアを記録した記録媒体では、終端マークを255とした。終端マークを255とした事から1byteに代入する事ができる最大値は、254となり、255を数値として使用しない事とした。また、本発明の倍数乗数分割ソフトウェアを記録した記録媒体では、数値の並び方をパーン化する事で、出来るだけ１個の数値を表すのに必要とするバイト数を減らす事を目標に作成したので、中間マークというものを設定する事とした。終端マークと同じ様に0から255までの数値の中から、任意の数値を選ぶ事とするが、終端マークと違う数値を使用する事とした。また、中間マークは、数値の並び方をパーン化する事の為に使用するものであるから、倍数で表現できる数値の分割処理を行った場合の数値の並び方と、乗数でなければ表現できない様な大きな数値の分割処理を行った場合の数値の並び方と倍数に満たない507までの数値の分割処理を行った場合の数値の並び方とで区別できる様な数値を選んで使用する事とする。本発明の倍数乗数分割ソフトウェアを記録した記録媒体では、実施例では、中間マークに、0を使用する事とした。中間マークは、倍数で表現できる数値の分割処理にのみに使用する事とした。乗数でなければ表現できない様な大きな数値の分割処理と倍数に満たない507までの数値の分割処理では、中間マークを使用しない形式とした。64bitの型で16個の変数を作成する。各々の変数を、最初の余り変数、倍数変数、倍数の余り変数、ユニット変数、ユニット２変数、ユニット３変数、ユニット４変数、ユニット５変数、ユニット６変数、ユニットの余り変数、ユニット２の余り変数、ユニット３の余り変数、ユニット４の余り変数、ユニットの５余り変数と、仮称する。倍数値を算出させて、算出させた数値を代入する為の変数を64bitの型で作成して、算出倍数変数と呼ぶ事とする。余りを算出させて算出させた数値を代入する変数を64bitの型で作成して、算出余り変数と呼ぶ事とする。1byteの型で変数を作成して、作成した変数を判断変数と呼ぶ事とする。判断変数には、計算を継続して行う場合に、倍数余りが254より大きい場合には1を代入し、倍数または、乗数が254より大きい場合には1を代入し、倍数余りと倍数または、乗数の両方が254より大きい場合には1を代入し、倍数余りと倍数または、乗数の両方が254以下なので計算を継続させる必要がない場合には0を代入する事とする。1byteの型で０のサイズで配列を作成して、作成した配列を分割配列と呼ぶ事とする。この作成した分割配列に、算出した数値を代入する事とする。各々の計算で得られる数値の並びが違うので計算の度に必要な配列のサイズ（配列に代入できるデーターの数）が違うので、既に作成してある分割配列のサイズを指定して作成しなおすという処理を行う事とするが、この配列のサイズ変更をリサイズ処理と呼ぶ事とする。
【００４３】
元データー変数に代入された数値が254より小さい場合と254と等しい場合と254より大きい場合との３種類に分岐する。この分岐を分割１分岐と呼ぶ事とする。分割１分岐で、元データー変数に代入された数値が254より小さい場合は、計算せずにそのままの数値を計算結果とする。分割配列のサイズを1byteの型で１のサイズにリサイズ処理をする。計算結果を分割配列の最初の位置に代入する。判断変数に、0を代入する。
【００４４】
分割１分岐で、元データー変数に代入された数値が254と等しい場合は、計算せずに計算結果をそのままの数値の254とする。分割配列のサイズを1byteの型で２のサイズにリサイズ処理を行う。計算結果の254という数値を分割配列の最初の位置に代入する。分割配列の最後の位置に終端マークの255という数値を代入する。判断変数に、0を代入する。
【００４５】
分割１分岐で、元データー変数に代入された数値が254より大きい場合は、以下の処理を行う。判断変数に、1を代入する。元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に代入しする。元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値が無い場合は、小数点以下の数値が無かったのであるから、算出余り変数には0を代入する。元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値がある場合は、少数点以下を切り捨てた数値を算出倍数変数に代入する。元データー変数に代入された数値を254で割って得られた数値に小数点以下の数値がある場合は、元データー変数に代入された数値を254で割った場合の余りを、算出余り変数に代入する。算出倍数変数に代入された数値を倍数変数に代入する。算出余り変数に代入されている数値を最初の余り変数に代入する。これで分割１分岐を終了する。
【００４６】
判断変数に代入された数値で分岐する。この分岐を分割２分岐と呼ぶ事とする。分割２分岐で、判断変数に代入された数値が1の場合と判断変数に代入された数値が0の場合とに分岐する。分割２分岐で、判断変数に代入された数値が1の場合は、倍数変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小１分岐と仮称する。
【００４７】
大小１分岐で、算出倍数変数に代入された数値が254以下の場合は、以下の処理を行う。分割配列のサイズを1byteの型で５のサイズにリサイズ処理をする。254を分割配列の最初の位置に代入し、中間マークの0を分割配列の２番目の位置に代入し、倍数変数に代入された数値を分割配列の３番目の位置に代入し、最初の余り変数に代入された数値を分割配列の４番目の位置に代入し、終端マークの255を分割配列の最後の位置に代入する。判断変数に、0を代入する。
【００４８】
大小１分岐で、算出倍数変数に代入された数値が255以上の場合は、以下の処理を行う。算出倍数変数に代入された数値を254で割って得られた数値に小数点以下の数値が無かった場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数に代入された数値を254で割って得られた数値に小数点以下の数値が無かった場合は、算出余り変数に0を上書きで代入する。算出倍数変数に代入された数値を254で割って得られた数値に小数点以下があった場合は、小数点以下を切り捨てて、得られた数値を算出倍数変数に上書きで代入する。算出倍数変数に代入された数値を254で割って得られた数値に小数点以下があった場合は、算出倍数変数に代入された数値を254で割って得られた余りを、算出余り変数に上書きで代入する。算出倍数変数に代入された数値をユニット変数に代入する。算出余り変数に代入されている数値を倍数の余り変数に代入する。
【００４９】
大小１分岐で、ユニット変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子１分岐と仮称する。大小子１分岐で、ユニット変数に代入された数値が254以下の場合は、以下の処理を行う。分割配列を1byteの型で５のサイズにリサイズ処理をする。254を分割配列の最初の位置に代入し、ユニット変数に代入された数値を分割配列の２番目の位置に代入し、倍数の余り変数に代入された数値を分割配列の３番目の位置に代入し、最初の余り変数に代入された数値を分割配列の４番目の位置に代入し、終端マークの255を分割配列の最後の位置に代入する。判断変数に、0を代入する。大小子１分岐で、ユニット変数に代入された数値が255以上の場合は、以下の処理を行う。判断変数に、1を代入する。これで、大小子１分岐を終了する。
【００５０】
判断変数に代入された数値が1であった場合と0であった場合で分岐する。この分岐を判断１分岐と仮称する。判断１分岐で、判断変数に代入された数値が1であった場合は、以下の処理を行う。ユニット変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入する。ユニット２変数に算出倍数変数に代入された数値を代入する。ユニットの余り変数に算出余り変数に代入された数値を代入する。
【００５１】
判断１分岐で、ユニット２変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子２分岐と仮称する。大小子２分岐でユニット２変数に代入された数値が254以下の場合は、分割配列を1byteの型で７のサイズにリサイズ処理する。分割配列の最初の位置に254を代入する。分割配列の２番目の位置に254を代入する。分割配列の３番目の位置にユニット２変数の数値を代入する。分割配列の４番目の位置にユニットの余り変数に代入された数値を代入する。分割配列の５番目の位置に倍数の余り変数に代入された数値を代入する。分割配列の６番目の位置に最初の余り変数の数値を代入する。分割配列の最後の位置に、終端マークの255を代入する。判断変数に0を代入する。大小子２分岐でユニット２変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子２分岐を終了する。判断１分岐で、判断変数に代入された数値が0であった場合は、何も処理をせずに、判断１分岐を終了する。
【００５２】
判断変数に代入された数値が0の場合と1の場合とに分岐する。この分岐を判断２分岐と仮称する。判断２分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う。ユニット２変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入する。ユニット３変数に算出倍数変数に代入された数値を代入する。ユニット２の余り変数に算出余り変数に代入された数値を代入する。
【００５３】
判断２分岐で、ユニット３変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子３分岐と仮称する。大小子３分岐で、ユニット３変数に代入された数値が254以下の場合は、分割配列を1byteの型で９のサイズにリサイズ処理する。分割配列の最初の位置に254を代入する。分割配列の２番目の位置に254を代入する。分割配列の３番目の位置に254を代入する。分割配列の４番目の位置にユニット３変数の数値を代入する。分割配列の５番目の位置にユニット２の余り変数の数値を代入する。分割配列の６番目の位置にユニットの余り変数に代入された数値を代入する。分割配列の７番目の位置に倍数の余り変数に代入された数値を代入する。分割配列の８番目の位置に最初の余り変数に代入された数値を代入する。分割配列の最後の位置に、終端マークの255を代入する。判断変数に0を代入する。大小子３分岐で、ユニット３変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子３分岐を終了する。判断２分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断２分岐を終了する。
【００５４】
判断変数に代入された数値が0の場合と1の場合とに分岐する。この分岐を判断３分岐と仮称する。判断３分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う。ユニット３変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入する。ユニット４変数に算出倍数変数に代入された数値を代入する。ユニット３の余り変数に算出余り変数に代入された数値を代入する。
【００５５】
判断３分岐で、ユニット４変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子４分岐と仮称する。大小子４分岐で、ユニット４変数に代入された数値が254以下の場合は、分割配列を1byteの型で１１のサイズにリサイズ処理する。分割配列の最初の位置に254を代入する。分割配列の２番目の位置に254を代入する。分割配列の３番目の位置に254を代入する。分割配列の４番目の位置に254を代入する。分割配列の５番目の位置にユニット４変数の数値を代入する。分割配列の６番目の位置にユニット３の余り変数の数値を代入する。分割配列の７番目の位置にユニット２の余り変数に代入された数値を代入する。分割配列の８番目の位置にユニットの余り変数に代入された数値を代入する。分割配列の９番目の位置に倍数の余り変数に代入された数値を代入する。分割配列の１０番目の位置に最初の余り変数に代入された数値を代入する。分割配列の最後の位置に、終端マークの255を代入する。判断変数に0を代入する。大小子４分岐で、ユニット４変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子４分岐を終了する。判断３分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断３分岐を終了する。
【００５６】
判断変数に代入された数値が0の場合と1の場合とに分岐する。この分岐を判断４分岐と仮称する。判断４分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う。ユニット４変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入する。ユニット５変数に算出倍数変数に代入された数値を代入する。ユニット４の余り変数に算出余り変数に代入された数値を代入する。
【００５７】
判断４分岐で、ユニット５変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子５分岐と仮称する。大小子５分岐で、ユニット５変数に代入された数値が254以下の場合は、分割配列を1byteの型で１３のサイズにリサイズ処理する。分割配列の最初の位置に254を代入する。分割配列の２番目の位置に254を代入する。分割配列の３番目の位置に254を代入する。分割配列の４番目の位置に254を代入する。分割配列の５番目の位置に254を代入する。分割配列の６番目の位置にユニット５変数の数値を代入する。分割配列の７番目の位置にユニット４の余り変数の数値を代入する。分割配列の８番目の位置にユニット３の余り変数に代入された数値を代入する。分割配列の９番目の位置にユニット２の余り変数に代入された数値を代入する。分割配列の１０番目の位置にユニットの余り変数に代入された数値を代入する。分割配列の１１番目の位置に倍数の余り変数に代入された数値を代入する。分割配列の１２番目の位置に最初の余り変数に代入された数値を代入する。分割配列の最後の位置に、終端マークの255を代入する。判断変数に0を代入する。大小子５分岐で、ユニット５変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子５分岐を終了する。判断４分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断４分岐を終了する。
【００５８】
判断変数に代入された数値が0の場合と1の場合とに分岐する。この分岐を判断５分岐と仮称する。判断５分岐で、判断変数に代入された数値が1の場合は、以下の処理を行う。ユニット５変数に代入された数値から254を減算して得た数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、そのままの数値を算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値が無い場合は、算出余り変数に0を上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、小数点以下を切り捨てて、算出倍数変数に上書きで代入する。算出倍数変数の数値を254で割って得られた数値に小数点以下の数値があった場合は、算出倍数変数の数値を254で割って得られた余りを算出余り変数に上書きで代入する。ユニット６変数に算出倍数変数に代入された数値を代入する。ユニット５の余り変数に算出余り変数に代入された数値を代入する。
【００５９】
判断５分岐で、ユニット６変数に代入された数値が254以下の場合と255以上の場合とに分岐する。この分岐を大小子６分岐と仮称する。大小子６分岐で、ユニット６変数に代入された数値が254以下の場合は、分割配列を1byteの型で１５のサイズにリサイズ処理する。分割配列の最初の位置に254を代入する。分割配列の２番目の位置に254を代入する。分割配列の３番目の位置に254を代入する。分割配列の４番目の位置に254を代入する。分割配列の５番目の位置に254を代入する。分割配列の６番目の位置に254を代入する。分割配列の７番目の位置にユニット６変数の数値を代入する。分割配列の８番目の位置にユニット５の余り変数の数値を代入する。分割配列の９番目の位置にユニット４の余り変数に代入された数値を代入する。分割配列の１０番目の位置にユニット３の余り変数に代入された数値を代入する。分割配列の１１番目の位置にユニット２の余り変数に代入された数値を代入する。分割配列の１２番目の位置にユニットの余り変数に代入された数値を代入する。分割配列の１３番目の位置に倍数の余り変数に代入された数値を代入する。分割配列の１４番目の位置に最初の余り変数に代入された数値を代入する。分割配列の最後の位置に、終端マークの255を代入する。判断変数に0を代入する。大小子５分岐で、ユニット６変数に代入された数値が255以上の場合は、判断変数に1を代入して、大小子６分岐を終了する。判断５分岐で、判断変数に代入された数値が0の場合は、何も行わずに判断５分岐を終了する。
【００６０】
これで、大小１分岐を終了する。分割２分岐で、判断変数に代入された数値が0の場合は、何も処理を行わずに、分割２分岐を終了する。
【００６１】
ステップ１０３に進む。ステップ１０３は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。ステップ１０２で作成した分割配列の最初の位置から最後の位置までに代入されたデーターを図符号Ｆの作成した分割データーを表示するリストボックスに1byteづつ縦に表示する。図符号Ｆの作成した分割データーを表示するリストボックスに表示が完了したら、ファイルに記録する。バイナリー形式でファイルを作成する指定をして、ファイルを作成する。作成したファイルに、分割配列の最初の位置から最後の位置までに代入された1byteづつの数値を、ファイルの末尾に1byteづつ書き込んでファイルを作成して、分割工程を終了する。分割工程が終了した状態を示したのが図３の＜倍数乗数分割ソフトウェアで数値を分割処理後の操作画面図＞である。
【００６２】
次に、復元工程の説明を行う事とする。復元工程は、分割処理された数値が記録されているファイル（分割工程で作成したファイルの事）または、分割処理されたデーター（図符号Ｆの作成した分割データーを表示するリストボックスに表示された数値の事）が無いと復元できないので、必ず、分割工程終了後に行う事とする。ステップ１０４に進む。ステップ１０４は、人為的な手動による操作または入力処理工程である。図符号Ｈの復元したいファイルの指定テキストボックスに図符号Ｃのキーボードでファイル名をフルパスで入力する事で復元工程の処理を行うファイルを指定する。しかし、図符号Ｋの参照ボタンを図符号Ｄのマウスでクリックする事で、図符号Ｃのキーボードでファイル名をフルパスで入力せずに、ファイルを選択して指定する事ができる。図符号Ｈの復元したいファイルの指定テキストボックスに入力されたファイルを復元対象ファイルと呼ぶ事とする。図符号Ｊの元に戻すボタンを図符号Ｄのマウスでクリックして復元工程をスタートさせる。
【００６３】
ステップ１０５に進む。ステップ１０５は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。図符号Ｈで指定された復元対象ファイルを1byteづつ配列に読み込む処理を行う。復元対象ファイルを1byteの型で1byteづつ読み込むのに必要なサイズの配列を作成する。この配列を仮称、復元対象配列とする。図符号Ｈで指定された復元対象ファイルをバイナリー形式で開いてファイルに記録されている全ての数値を1byteづつ読み込んで、読み込んだ1byteづつの数値を復元対象配列の最初の位置から最後の位置までに、1byte代入する度に1byte分づつ代入する位置をずらして代入する。
【００６４】
次に、ステップ１０６に進む。ステップ１０６は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。計算結果を代入する変数を64bitの型で作成する。この作成した変数を計算結果変数と呼ぶ事とする。復元対象配列の最初の位置に代入された数値が254より小さい場合と254と等しい場合とに分岐する。この分岐をＤ大小分岐と仮称する。復元対象配列の最初の位置に代入された数値を配列１と呼び、復元対象配列の２番目の位置に代入された数値を配列２と呼び、復元対象配列の３番目の位置に代入された数値を配列３と呼び、復元対象配列の４番目の位置に代入された数値を配列４と呼び、復元対象配列の５番目の位置に代入された数値を配列５と呼び、復元対象配列の６番目の位置に代入された数値を配列６と呼び、復元対象配列の７番目の位置に代入された数値を配列７と呼び、復元対象配列の８番目の位置に代入された数値を配列８と呼び、復元対象配列の９番目の位置に代入された数値を配列９と呼び、復元対象配列の１０番目の位置に代入された数値を配列１０と呼び、復元対象配列の１１番目の位置に代入された数値を配列１１と呼び、復元対象配列の１２番目の位置に代入された数値を配列１２と呼び、復元対象配列の１３番目の位置に代入された数値を配列１３と呼び、復元対象配列の１４番目の位置に代入された数値を配列１４と呼び、復元対象配列の１５番目の位置に代入された数値を配列１５と呼ぶ事にする。また、復元対象配列に代入された数値を示す場合に、配列１とか配列２とか配列３という具合に略して配列に代入された数値を示す事がある。
【００６５】
Ｄ大小１分岐で、配列１が254より小さい場合は、計算せずにそのままの数値を計算結果として、計算結果変数に代入する。
【００６６】
Ｄ大小１分岐で、配列１が254と等しい場合は、以下の場合に分岐する。この分岐をＤ大小２分岐と仮称する。Ｄ大小２分岐で、配列２が255である場合は、254を計算結果として、計算結果変数に代入する。
【００６７】
Ｄ大小２分岐で、配列２が0と等しくて、配列３が1以上で、配列４が0以上で、配列５が255であった場合は、以下の計算を行う。（配列３×254）＋（配列４）を算出して、計算結果変数に代入する。
【００６８】
Ｄ大小２分岐で、配列２が1以上で、配列３が1以上で、配列４が0以上で、配列５が255の場合は、以下の計算を行う。（配列２×254×254）＋（配列３×254）＋（配列４）を算出して、計算結果変数に代入する。
【００６９】
Ｄ大小２分岐で、配列２が254で、配列３が1以上で、配列４が1以上で、配列５が1以上で、配列６が0以上で、配列７が255の場合は、以下の計算を行う。（配列２×254×254×254）＋（配列３×254×254×254）＋（配列４×254×254）＋（配列５×254）＋（配列６）を算出して、計算結果変数に代入する。
【００７０】
Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が1以上で、配列５が1以上で、配列６が1以上で、配列７が1以上で、配列８が0以上で、配列９が255の場合は、以下の計算を行う。（配列２×254×254×254×254）＋（配列３×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254）＋（配列６×254×254）＋（配列７×254）＋（配列８）を算出して、計算結果変数に代入する。
【００７１】
Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が1以上で、配列６が1以上で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が0以上で、配列１１が255の場合は、以下の計算を行う。（配列２×254×254×254×254×254）＋（配列３×254×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254×254×254）＋（配列６×254×254×254×254）＋（配列７×254×254×254）＋（配列８×254×254）＋（配列９×254）＋（配列１０）を算出して、計算結果変数に代入する。
【００７２】
Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が254で、配列６が1以上で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が1以上で、配列１１が1以上で、配列１２が0以上で、配列１３が255の場合は、以下の計算を行う。（配列２×254×254×254×254×254×254）＋（配列３×254×254×254×254×254）＋（配列４×254×254×254×254）＋（配列５×254×254×254）＋（配列６×254×254×254×254×254×254）＋（配列７×254×254×254×254×254）＋（配列８×254×254×254×254）＋（配列９×254×254×254）＋（配列１０×254×254）＋（配列１１×254）＋（配列１２）を算出して、計算結果変数に代入する。
【００７３】
Ｄ大小２分岐で、配列２が254で、配列３が254で、配列４が254で、配列５が254で、配列６が254で、配列７が1以上で、配列８が1以上で、配列９が1以上で、配列１０が1以上で、配列１１が1以上で、配列１２が1以上で、配列１３が1以上で、配列１４が0以上で、配列１５が255の場合は、以下の計算を行う。（配列２×254×254×254×254×254×254×254）＋（配列３×254×254×254×254×254×254）＋（配列４×254×254×254×254×254）＋（配列５×254×254×254×254）＋（配列６×254×254×254）＋（配列７×254×254×254×254×254×254×254）＋（配列８×254×254×254×254×254×254）＋（配列９×254×254×254×254×254）＋（配列１０×254×254×254×254）＋（配列１１×254×254×254）＋（配列１２×254×254）＋（配列１３×254）＋（配列１４）を算出して、計算結果変数に代入する。
【００７４】
Ｄ大小２分岐で、分岐条件に該当しない倍は、エラーとして計算結果変数に-1を代入して、Ｄ大小２分岐を終了する。Ｄ大小１分岐で、分岐条件に該当しない場合は、エラーとして計算結果変数に-1を代入して、Ｄ大小１分岐を終了する。
【００７５】
ステップ１０７に進む。ステップ１０７は、倍数乗数分割ソフトウェアとコンピューターによる自動処理工程である。計算結果変数に代入された数値を図符号Ｉの元の数値に戻した数値テキストボックスに表示する。計算結果変数に代入された数値を図符号Ｉの元の数値に戻した数値テキストボックスに表示し終わったら、復元工程の処理を終了する。ここまでの分割工程と復元工程の両方を完了した状態を示す図が図４の＜倍数乗数分割ソフトウェアで数値を分割処理後に復元工程を処理後の操作画面図＞である。
【産業上の利用可能性】
【００７６】
コンピューターで使用されているデーターファイル、音声ファイル、画像ファイル、文書ファイルなどから圧縮ファイルや差分ファイル等を作成する際にソフトウェアとして利用される事が予想される。また、通信技術としても利用可能であり、携帯電話、スマートフォン、タブレット型コンピューターでの通信、テレビ放送、ラジオ放送、カーナビゲーションシステム、各種無線技術や有線放送局でのテレビ放送配信、電信、電話、有線のインターネットでの通信などの多種多様な有線通信技術としての利用が考えられる。
【００７７】
本発明の倍数乗数分割ソフトウェアを記録した記録媒体で計算出力される２進数でファイルを作成すると特殊な２進数で構成された数値データー形式で記録される事になる。コンピューターで普通に使われている機械語の全てを本発明の倍数乗数分割ソフトウェアを記録した記録媒体を使用して算出したデーターで記録する事も可能である。本発明の倍数乗数分割ソフトウェアを記録した記録媒体によって算出したデーターは、機械語を記録する為の今までに無い新しい２進数として使用できるものであると考えている。
【００７８】
本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、数値をコンピューターで使用されているファイルに記録する場合の記録方式である。単純に言うと数値の記録方式なのである。従って、本発明の技術で作成した数値で記録する元の数値は、２進数のみには限らない。二進化十進数で表した数値を本発明の倍数乗数分割ソフトウェアを記録した記録媒体の技術で算出作成し、ファイルに記録する事も可能になる技術である。
【００７９】
本発明の倍数乗数分割ソフトウェアを記録した記録媒体は、コンピューターの本体メモリーに数値や機械語を記録する場合にも使用できる記録方式である。コンピューターの本体メモリーに数値や機械語を記録する場合に、本発明の倍数乗数分割ソフトウェアを記録した記録媒体で計算出力される２進数を使用した場合は、コンピューターのCPUと呼ばれる部分も本発明の倍数乗数分割ソフトウェアを記録した記録媒体で計算出力される２進数に対応したものに変更しなければならなくなる。しかし、本発明の倍数乗数分割ソフトウェアを記録した記録媒体で計算出力される２進数を使用してコンピューターの本体メモリーに数値や機械語を記録するようにコンピューターのシステムを変更した場合は、コンピューターの処理速度が高速になるというメリットがあると予測される。
【符号の説明】
【００８０】
Ａ：モニター
Ｂ：コンピューター本体
Ｃ：キーボード
Ｄ：マウス
Ｅ：分割するデーターを入力するテキストボックス
Ｆ：作成した分割データーを表示するリストボックス
Ｇ：分割データーの作成ボタン
Ｈ：復元したいファイルの指定テキストボックス
Ｉ：元の数値に戻した数値テキストボックス
Ｊ：元に戻すボタン
Ｋ：参照ボタン
Ｌ：人為的な手動による操作または入力
Ｍ：倍数乗数分割ソフトウェアとコンピューターによる自動処理工程
【図１】
2014119934.tif 000003
【図２】
2014119934.tif 000004
【図３】
2014119934.tif 000005
【図４】
2014119934.tif 000006
【図５】
2014119934.tif 000007