(57)【要約】【課題】特別な回路を必要とせずに除算処理にかかる演算時間を短縮させた演算装置及びプログラムを提供すること。【解決手段】演算部２６は被除数Ｘ及び除数Ｙの所定上位桁を抜き出して第２被除数及び第２除数とし、第２被除数から第２除数を繰り返し減算して商の仮値を求める。そして当該仮値と除数とを乗算器で乗算し、被除数から乗算結果を減算する。演算部２６は当該減算結果の正負に基づいて、商の仮値を商として決定する。上記演算を繰り返すことにより、被除数Ｘと被除数Ｙの除算結果が算出される。【選択図】    図２
2004310432.tif 000002
【特許請求の範囲】
【請求項１】
加減算器及び乗算器を用いて除算を実現する演算装置において、
被除数及び除数の所定上位桁を抜き出し、第２被除数及び第２除数とする抜出手段と、
前記加減算器で前記第２被除数から前記第２除数を繰り返し減算させることにより商の仮値を求める仮値算出手段と、
この仮値算出手段により求められた仮値と前記除数とを前記乗算器で乗算させる乗算手段と、
前記被除数から前記乗算手段による乗算結果を前記加減算器に減算させる減算手段と、
この減算手段による減算結果の正負に基づき前記仮値算出手段により求められた商の仮値を商として決定する商決定手段と、
を備える演算装置。
【請求項２】
前記商決定手段は、前記減算結果が負の場合、前記仮値算出手段により求められた商の仮値より１減算させ、前記被除数に前記除数を加算させる調整手段を有することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記減算手段による減算結果で前記被除数を更新し、当該減算結果が負の場合には当該減算結果と前記除数とを加算した値で前記被除数を更新する被除数更新手段と、
前記抜出手段、前記仮値算出手段、前記乗算手段、前記減算手段、前記商決定手段及び前記被除数更新手段を繰り返し実行させる繰り返し手段と、
この繰り返し手段による繰り返し実行において前記商決定手段が順次決定した商を一連とすることにより除算結果を決定する除算結果決定手段と、
を更に備えることを特徴とする請求項２に記載の演算装置。
【請求項４】
前記除算結果の桁数を設定する設定手段を更に備え、
前記繰り返し手段は、前記除算結果の桁数が前記設定手段によって設定された桁数を満たす場合、繰り返し実行を終了する手段であることを特徴とする請求項３に記載の演算装置。
【請求項５】
前記抜出手段は、前記被除数及び前記除数の上位４桁以内を抜き出す手段であることを特徴とする請求項１〜４の何れか一項に記載の演算装置。
【請求項６】
加減算器及び乗算器が実装されたコンピュータに、
被除数及び除数の所定上位桁を抜き出し、第２被除数及び第２除数とする抜出機能と、
前記加減算器で前記第２被除数から前記第２除数を繰り返し減算させることにより商の仮値を求める仮値算出機能と、
この仮値算出機能により求められた仮値と前記除数とを前記乗算器で乗算させる乗算機能と、
前記被除数から前記乗算機能による乗算結果を前記加減算器に減算させる減算機能と、
この減算機能による減算結果の正負に基づき前記仮値算出機能により求められた商の仮値を商として決定する商決定機能と、
を実現させることにより除算を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、除算演算を行うための演算装置及びプログラムに関するものである。
【０００２】
【従来の技術】
従来、除算演算を行う場合は、被除数から除数が何回減算できるかをカウントする除算回路によって除数の答えが算出されていた。このような従来の除数回路の動作の一例を、被除数Ｘ、除数Ｙ、除算結果Ｚとして示したフローチャートを図６に示す。
【０００３】
まず、各変数を初期化する。変数Ｎは減算回数、変数Ｄは減算回数が除算結果のどの桁に対応するかを示す変数である。変数Ｚ及び変数Ｎには“０”、変数Ｄには“１”が代入される（ステップＳ１）。
【０００４】
次に被除数Ｘが“０”であるか否かが判別される（ステップＳ２）。被除数Ｘが“０”であれば（ステップＳ２；Ｙｅｓ）、処理は終了する。被除数Ｘが“０”でない場合（ステップＳ２；Ｎｏ）、被除数Ｘと除数Ｙの値が比較される（ステップＳ３）。被除数Ｘの値が除数Ｙの値より小さい場合（ステップＳ３；Ｎｏ）、被除数Ｘの値は１０倍され、変数Ｄの値は１／１０される（ステップＳ４）。
【０００５】
続いて被除数Ｘの値から除数Ｙの値が減算され、当該減算結果が被除数Ｘに代入される（ステップＳ５）。そして被除数Ｘの値が“０”以上の場合（ステップＳ６；Ｙｅｓ）、変数Ｎの値は１加算される（ステップＳ７）。被除数Ｘの値が“０”未満の場合（ステップＳ６；Ｎｏ）、被除数Ｘの値に除数Ｙが加算され、当該加算結果が被除数Ｘに代入される（ステップＳ８）。ここで被除数Ｘの値は被除数Ｘ÷除数Ｙの余りの値を示す。
【０００６】
次に変数Ｎの値と変数Ｄの値を乗算した結果に変数Ｚの値を加算し、当該加算結果が変数Ｚに代入される（ステップＳ９）。そして変数Ｚの値が所定の桁数を満たしていれば（ステップＳ１０；Ｙｅｓ）、処理を終了する。変数Ｚの値が所定の桁数を満たしていなければ（ステップＳ１０；Ｎｏ）、変数Ｎに“０”を代入してリセットし（ステップＳ１１）、ステップＳ４に処理を移行する。以上のように、被除数Ｘから除数Ｙが何回減算できるかをカウントし、除算結果を求めていた。
【０００７】
しかし、このような除算回路の場合、被除数Ｘ及び除数Ｙの桁数が大きくなると、減算にかかる処理時間が長くなり、除算結果を得るまでに時間がかかっていた。具体的には、例えば、図６におけるステップＳ５が相当するが、ステップＳ４〜Ｓ１１の処理ループにより、ステップＳ５の処理が繰り返し行われるため、被除数Ｘ及び除数Ｙの桁数が大きくなればなる程、この問題が顕著に表れていた。
【０００８】
そこで、特許文献１の技術のように、減算処理にかかるクロック数（処理時間）を設定可能にすることにより、効率的に減算処理を行って除算結果を得ることのできる除算回路が知られている。更に、特許文献２の技術のように、複数の減算ブロックを設置することによって減算処理を並列処理し、演算にかかる処理時間を短縮させた除算回路も知られている。
【０００９】
【特許文献１】
特開平８−６７６５号公報
【特許文献２】
特開２００２−１７５１７８号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、特許文献１及び２のような技術を適用することにより、除算回路に必要な回路数（素子数）が増加し、これによる回路面積の増大が問題となっていた。
【００１１】
本発明の目的は、特別な回路を必要とせずに除算処理にかかる演算時間を短縮させた演算装置及びプログラムを提供することである。
【００１２】
【課題を解決するための手段】
以上の課題を解決するために、請求項１に記載の演算装置は、加減算器及び乗算器を用いて除算を実現する演算装置において、被除数及び除数の所定上位桁を抜き出し、第２被除数及び第２除数とする抜出手段（例えば、図２の演算部２６；図３のステップＡ６）と、前記加減算器で前記第２被除数から前記第２除数を繰り返し減算させることにより商の仮値を求める仮値算出手段（例えば、図２の演算部２６；例えば、図３のステップＡ７〜Ａ９）と、この仮値算出手段により求められた仮値と前記除数とを前記乗算器で乗算させる乗算手段（例えば、図２の演算部２６；図３のステップＡ１０）と、前記被除数から前記乗算手段による乗算結果を前記加減算器に減算させる減算手段（例えば、図２の演算部２６；図３のステップＡ１０）と、この減算手段による減算結果の正負に基づき前記仮値算出手段により求められた商の仮値を商として決定する商決定手段（例えば、図２の演算部２６；図３のステップＡ１１〜Ａ１３）と、を備えることを特徴としている。
【００１３】
また、請求項６に記載の発明のプログラムは、加減算器及び乗算器が実装されたコンピュータに、被除数及び除数の所定上位桁を抜き出し、第２被除数及び第２除数とする抜出機能（例えば、図３のステップＡ６）と、前記加減算器で前記第２被除数から前記第２除数を繰り返し減算させることにより商の仮値を求める仮値算出機能（例えば、図３のステップＡ７〜Ａ９）と、この仮値算出機能により求められた仮値と前記除数とを前記乗算器で乗算させる乗算機能（例えば、図３のステップＡ１０）と、前記被除数から前記乗算機能による乗算結果を前記加減算器に減算させる減算機能（例えば、図３のステップＡ１０）と、この減算機能による減算結果の正負に基づき前記仮値算出機能により求められた商の仮値を商として決定する商決定機能（例えば、図３のステップＡ１１〜Ａ１３）と、を実現させることにより除算を実行させることを特徴としている。
【００１４】
この請求項１又は６に記載の発明によれば、被除数及び除数の所定上位桁を抜き出して第２被除数及び第２除数とすることにより、第２被除数及び第２除数の桁数が被除数及び除数の桁数以下となるため、仮値算出手段において第２被除数から第２除数を繰り返し減算する際の演算時間を短縮することができる。従って、除算演算の演算速度を短縮することができる。
【００１５】
更に、本来の演算装置に備わっている加減算器及び乗算器を用いて除算演算を実行可能なため、特別な回路を設置する必要がない。従って、新たに回路等を設計する必要がなく、簡単に除算演算の演算時間を短縮させることができる。
【００１６】
請求項２に記載の発明は、請求項１に記載の演算装置であって、前記商決定手段は、前記減算結果が負の場合、前記仮値算出手段により求められた商の仮値より１減算させ、前記被除数に前記除数を加算させる調整手段（例えば、図２の演算部２６）を有することを特徴としている。
【００１７】
この請求項２に記載の発明によれば、前記仮値算出手段によって求められた仮値が被除数と除数の商として正しくない（即ち、減算手段による減算結果が負）場合に、商決定手段によって正しい商に調整することができる。これにより、被除数及び除数の所定上位桁を抜き出した第２被除数及び第２除数によって除算を行っても、被除数と除数の正確な商を得ることができる。
【００１８】
請求項３に記載の発明は、請求項２に記載の演算装置であって、前記減算手段による減算結果で前記被除数を更新し、当該減算結果が負の場合には当該減算結果と前記除数とを加算した値で前記被除数を更新する被除数更新手段（例えば、図２の演算部２６）と、前記抜出手段、前記仮値算出手段、前記乗算手段、前記減算手段、前記商決定手段及び前記被除数更新手段を繰り返し実行させる繰り返し手段（例えば、図２の演算部２６）と、この繰り返し手段による繰り返し実行において前記商決定手段が順次決定した商を一連とすることにより除算結果を決定する除算結果決定手段（例えば、図２の演算部２６）と、を更に備えることを特徴としている。
【００１９】
この請求項３に記載の発明によれば、減算手段によって被除数を更新し、繰り返し手段によって抜出手段、仮値算出手段、乗算手段、減算手段、商決定手段及び被除数更新手段を繰り返し実行し、繰り返し実行において決定した商を一連の値とすることにより、当該一連の値を被除数と除数の除算結果とすることができる。従って、繰り返し手段による繰り返し実行により、除算結果の桁数を増加させ、除算を実数で求めるといったことができる。
【００２０】
請求項４に記載の発明は、請求項３に記載の演算装置であって、前記除算結果の桁数を設定する設定手段（例えば、図２の演算部２６；図３のステップＡ１）を更に備え、前記繰り返し手段は、除算結果の桁数が前記設定手段によって設定された桁数を満たす場合、繰り返し実行を終了する手段であることを特徴としている。
【００２１】
この請求項４に記載の発明によれば、除算結果の桁数を任意に設定可能とすることにより、例えば、除算結果の桁数を少なく設定することにより、演算速度を短縮することができる。
【００２２】
また、請求項５に記載の発明のように、請求項１〜４の何れか一項に記載の演算装置であって、前記抜出手段は、前記被除数及び前記除数の上位４桁以内を抜き出す手段（例えば、図２の演算部２６）であってもよい。
【００２３】
【発明の実施の形態】
以下、図１〜図５を参照して、本発明に係る実施の形態について詳細に説明する。尚、以下においては、本発明を、計算機能を有する関数電卓に適用した場合を例にとって説明するが、本発明が適用可能な実施形態は、これに限定されるものではなく、パソコンやＰＤＡ（パーソナルデジタルアシスタント）等、関数電卓以外の各種演算装置にも適用することができる。
【００２４】
図１は、関数電卓１の構成を示すブロック図である。同図に示すように、関数電卓１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、入力部１２、表示部１３、通信制御部１４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６及び外部記憶メモリ１７によって構成されており、各部はバス１８によって接続されている。
【００２５】
ＣＰＵ１１は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送等を行う。具体的には、ＣＰＵ１１は、入力部１２から入力される操作信号に応じてＲＯＭ１５に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、処理結果をＲＡＭ１６に格納するとともに、当該処理結果を表示するための表示信号を適宜出力して、当該表示信号に対応した表示情報を表示部１３に表示させる。
【００２６】
またＣＰＵ１１は、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）の機能を司る演算回路部２００を備える。演算回路部２００はＰ−ＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）２１を有し、Ｐ−ＲＯＭ２１にはマシン語レベルで構成された除算命令ルーチン２１０等の各種命令語に対する演算ルーチンのプログラムが格納されている。除算命令ルーチン２１０は除算処理を実現させるための複数の命令で構成されたプログラムである。ＣＰＵ１１は、ＲＯＭ１５から読み出したプログラムに従って処理を実行している際に、当該プログラム中の除算命令を検知すると、除算命令ルーチン２１０を読み出して、当該ルーチンに従って処理を行う。除算命令ルーチン２１０についての詳細は後述する。
【００２７】
入力部１２は、ユーザが数値や演算処理の実行指示等を入力する手段である。そしてユーザに操作されたキーに対応する操作信号がＣＰＵ１１に出力される。
【００２８】
表示部１３は、入力部１２の操作によって入力された文字や符号、ＣＰＵ１１から出力される表示データに基づいた演算結果やグラフ表示等、関数電卓１を使用するために必要な各種データが表示される部分である。
【００２９】
通信制御部１４は、外部機器と通信回線網を介して各種データを送受信するためのインターフェースであり、ＣＰＵ１１からの信号によって動作する。
【００３０】
ＲＯＭ１５は、各種設定処理、各種演算処理等の関数電卓１の動作に係る各種処理プログラムや、関数電卓１の備える種々の機能を実現するためのアプリケーション等を記憶する。
【００３１】
ＲＡＭ１６は、ＣＰＵ１１が実行する各種プログラムや、これらのプログラムの実行にかかるデータ等を一時的に保持するメモリ領域を備える。
【００３２】
外部記憶メモリ１７は、例えば、メモリカード、ハードディスク等の記憶媒体であって、ＣＰＵ１１からの指示信号に従って、各種データの読み書きを行う。
【００３３】
図２は演算回路部２００の一例を示す回路ブロック図である。演算回路部２００は、Ｐ−ＲＯＭ２１、ＰＣ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）２２、アドレス指定部２３、メモリ２４、命令デコード部２５及び演算部２６等で構成される。
【００３４】
Ｐ−ＲＯＭ２１にはマシン語レベルで構成された各種プログラムが格納されている。除算命令ルーチン２１０は除算機能を実現させるための複数の命令で構成されたプログラムである。除算命令ルーチン２１０の各命令は、ＰＣ２２で指定されたアドレスに従って、Ｐ−ＲＯＭ２１から読み出されて出力される。
【００３５】
アドレス指定部２３は、Ｐ−ＲＯＭ２１から出力された命令に従ってメモリ２４内のアドレスを指定する。そして、メモリ２４はアドレス指定部２３によって指定されたアドレスに記憶されたデータを出力する。
【００３６】
命令デコード部２５は、Ｐ−ＲＯＭ２１から出力された命令をデコードし、演算部２６に出力する。演算部２６は命令デコード部２５より出力されたデコード結果に従って、メモリ２４から出力されたデータを演算する。そして演算結果はメモリ２４に出力され、記憶される。
【００３７】
図３は、除算命令ルーチン２１０に従って演算部２６が実行する除算処理の動作を被除数Ｘ、除数Ｙ、除算結果として変数Ｚを用いて説明するためのフローチャートである。図３を用いて、除算処理の流れについて説明する。
【００３８】
ここで、被除数Ｘ、除数Ｙ、変数ｖ及び定数ｋの値は演算回路部２００の外部（例えば、ＣＰＵ１１）から与えられ、メモリ２４は被除数Ｘ、除数Ｙ、定数ｋ、変数Ｚ、Ｎ、Ｄ、ｄ、Ｘ１及びＹ１の値を格納するための領域を有していることとする。
【００３９】
変数ｖは、除算結果である変数Ｚの有効桁数を示す。例えば、変数Ｚの有効桁数を小さく設定することにより、図３の除算処理におけるステップＡ５〜ステップＡ１４の繰り返し回数が減少するため、演算時間を短縮することができる。従って、演算精度を落しても演算時間を短縮したい場合は変数ｖの値を小さくして桁数を少なくし、演算時間を犠牲にしても演算精度を高めたい場合は、変数ｖの値を大きく設定すればよい。尚、変数ｖは、ユーザが任意の値を設定可能なように説明するが、演算される除算式の重要度等によってＣＰＵ１１によって決定されることとしてもよい。
【００４０】
演算部２６はユーザによって設定された変数ｖの値をメモリ２４に記憶する（ステップＡ１）。そして各変数値が初期化される。変数Ｎは減算回数、変数Ｄは減算回数が除算結果のどの桁に対応するかを示す変数である。演算部２６は、変数Ｚ及び変数Ｎの値を格納するメモリ２４の領域に“０”、変数Ｄの値を格納するメモリ２４の領域に“１”を記憶する。
【００４１】
また変数ｄは、ステップＡ７の減算処理で扱う被除数Ｘ及び除数Ｙに対応する値を決定するための変数である。演算部２６は被除数Ｘの値の桁数から定数ｋを減算する。そして減算結果を変数ｄの値を格納するメモリ２４の領域に記憶する（ステップＡ２）。具体的には、例えば被除数Ｘの値が４桁、定数ｋ＝２である場合、４−２＝２であるため、メモリ２４の変数ｄに対応する領域には“２”が記憶される。
【００４２】
次に、演算部２６は被除数Ｘが“０”であるか否かを判別する（ステップＡ３）。被除数Ｘが“０”であれば（ステップＡ３；Ｙｅｓ）、演算部２６は処理を終了する。被除数Ｘが“０”でない場合（ステップＡ３；Ｎｏ）、演算部２６は被除数Ｘと除数Ｙの値を比較する（ステップＡ４）。被除数Ｘの値が除数Ｙの値より小さい場合（ステップＡ４；Ｎｏ）、演算部２６は被除数Ｘの値を１０倍し、１０倍した結果を被除数Ｘの値を格納するメモリ２４の領域に記憶する。更に、変数Ｄの値を１／１０し、演算結果を変数Ｄの値を格納するメモリ２４の領域に記憶する（ステップＡ５）。
【００４３】
続いて、演算部２６は被除数Ｘの値から変数ｄの値分下位桁を切り捨てて、上位桁を抜き出した値を変数Ｘ１の値を格納するメモリ２４の領域に記憶する。更に、除数Ｙの値から変数ｄの値分下位桁を切り捨てて、上位桁を抜き出した値を変数Ｙ１の値を格納するメモリ２４の領域に記憶する（ステップＡ６）。即ち、変数Ｘ１及び変数Ｙ１は、被除数Ｘ及び被除数Ｙのｋ桁目以上を抜き出した値となる。
【００４４】
具体的には、被除数Ｘが４桁、変数ｄが“２”の場合、被除数Ｘの値の下２桁が切り捨てられ、上位２桁が変数Ｘ１として記憶される。つまり、被除数Ｘが“５６７８”、変数ｄが“２”の場合、被除数Ｘの値の下２桁が切り捨てられ、“５６”が変数Ｘ１として記憶される。
【００４５】
続いて、演算部２６は変数Ｘ１の値から変数Ｙ１の値を減算し、当該減算結果を変数Ｘ１の値を格納するメモリ２４の領域に記憶する（ステップＡ７）。そして演算部２６は被除数Ｘの値が“０”以上であるか否かを判別する。“０”以上の場合（ステップＡ８；Ｙｅｓ）、演算部２６は変数Ｎの値に１加算して、加算結果を変数Ｎの値を格納するメモリ２４の領域に記憶する（ステップＡ９）。
【００４６】
被除数Ｘの値が“０”より小さい場合（ステップＡ８；Ｎｏ）、演算部２６は被除数Ｘの値から除数Ｙの値と変数Ｎの値との乗算結果を減算する。そして当該減算結果を被除数Ｘの値を格納するメモリ２４の領域に記憶する（ステップＡ１０）。
【００４７】
次に演算部２６は変数Ｘの値が“０”より小さいか否かを判別する（ステップＡ１１）。“０”より小さい場合（ステップＡ１１；Ｙｅｓ）、演算部２６は被除数Ｘの値に除数Ｙを加算し、当該加算結果を被除数Ｘの値を格納するメモリ２４の領域に記憶する。更に、変数Ｎの値から１減算し、当該減算結果を変数Ｎの値を記憶するメモリ２４の領域に記憶する（ステップＡ１２）。
【００４８】
次に演算部２６は変数Ｎの値と変数Ｄの値を乗算した結果に変数Ｚの値を加算し、当該加算結果を変数Ｚの値を格納するメモリ２４の領域に記憶する（ステップＡ１３）。
【００４９】
続いて演算部２６は変数Ｚの値が変数ｖの示すの桁数を満たしているか否かを判断する（ステップＡ１４）。変数Ｚの値が変数ｖの示す桁数を満たしていない場合（ステップＡ１４；Ｎｏ）、演算部２６は変数Ｎの値を格納するメモリ２４の領域に“０”を記憶する（ステップＡ１５）。その後、ステップＡ５からの処理が繰り返される。変数Ｚの値が変数ｖの示すの桁数を満たしている場合（ステップＡ１４；Ｙｅｓ）、処理を終了する。
【００５０】
以下“５６７８９０÷１２３４５６”の演算結果を求める場合を例に挙げ、図３に示した除算命令ルーチン２１０に従った除算処理の流れについて、各変数の値が格納されているメモリ領域のデータ内容と共に図４及び５を参照しながら詳しく説明する。
【００５１】
ＣＰＵ１１はＲＯＭ１５に格納されているプログラムの命令に従って各種処理の実行中に“５６７８９０÷１２３４５６”の演算を行う命令を検知すると、当該演算を除算命令ルーチン２１０の命令に従って実行する。まず第１処理として、メモリ２４に変数Ｘ、Ｙ及び定数ｋの値が格納されるメモリ領域が確保される。変数Ｘの値を格納する領域を領域４１、変数Ｙの値を格納する領域を領域４２、定数ｋの値を格納する領域を領域４３とする。
【００５２】
以下、変数ｋの値を“３”として説明する。従って、領域４１には“５６７８９０”、領域４２には“１２３４５６”、領域４３には“３”が記憶される。更に図示していないが、任意に設定された変数ｖの値が記憶される（図３の除算処理のステップＡ１に該当）。
【００５３】
次に第２処理として、各種変数が初期化される。メモリ２４には変数Ｚ、Ｎ、Ｄ及びｄの値が格納されるメモリ領域が確保される。変数Ｚの値を格納する領域を領域４４、変数Ｎの値を格納する領域を領域４５、変数Ｄの値を格納する領域を領域４６、変数ｄの値を格納する領域を領域４７とする。領域４４及び４５には“０”、領域４６には“１”が記憶される。更に、領域４７には変数Ｘの値の桁数が“６”、変数ｋの値が“３”であるから、“６−３”の減算結果である“３”が記憶される（図３の除算処理のステップＡ２に該当）。
【００５４】
続いて、変数Ｘの値が“０”か否かが判別されるが（図３の除算処理のステップＡ３に該当）、領域４１に格納されている値は“０”ではないため、変数Ｘの値が変数Ｙの値以上であるか否かが判別される（図３の除算処理のステップＡ４に該当）。変数Ｙの値より変数Ｘの値は大きいため、第３処理としてメモリ２４に変数Ｘ１及びＹ１の値を格納するための領域が確保される。ここで変数Ｘ１の値を格納する領域を領域４８、変数Ｙ１の値を格納する領域を領域４９とする。そして領域４８には変数Ｘの値の下３桁を切り捨てて、上位桁を抜き出した値、即ち“５６７”が、領域４９には変数Ｙの値の下３桁を切り捨てて、上位桁を抜き出した値、即ち“１２３”が記憶される（図３の除算処理のステップＡ６に該当）。
【００５５】
次に第４処理として、“Ｘ１−Ｙ１”即ち“５６７−１２３”の減算結果である“４４４”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。変数Ｘ１の値は“０”以上であるから、変数Ｎの値に１加算された値“１”が領域４５に記憶される（図３の除算処理のステップＡ９に該当）。
【００５６】
第５処理として、“Ｘ１−Ｙ１”即ち“４４４−１２３”の減算結果である“３２１”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。変数Ｘ１の値は“０”以上であるから、変数Ｎの値に１加算された値“２”が領域４５に記憶される（図３の除算処理のステップＡ９に該当）。
【００５７】
第６処理として、“Ｘ１−Ｙ１”即ち“３２１−１２３”の減算結果である“１９８”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。変数Ｘ１の値は“０”以上であるから、変数Ｎの値に１加算された値“３”が領域４５に記憶される（図３の除算処理のステップＡ９に該当）。
【００５８】
第７処理として、“Ｘ１−Ｙ１”即ち“１９８−１２３”の減算結果である“７５”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。変数Ｘ１の値は“０”以上であるから、変数Ｎの値に１加算された値“４”が領域４５に記憶される（図３の除算処理のステップＡ９に該当）。
【００５９】
第８処理として、“Ｘ１−Ｙ１”即ち“７５−１２３”の減算結果である“−４８”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。ここで変数Ｘ１は“０”より小さい値である。従って、第９処理として、“Ｘ−Ｙ×Ｎ”即ち“５６７８９０−１２３４５６×４”の演算結果である“７４０６６”が領域４１に記憶される（図３の除算処理のステップＡ１０に該当）。
【００６０】
そして、変数Ｘが“０”より小さい値であるか否かが判別される（図３の除算処理のステップＡ１１に該当）。変数Ｘの値は“０”以上であるため、第１０処理として“Ｚ＋Ｎ×Ｄ”即ち“０＋４×１”の演算結果である“４”が領域４４に記憶される（図３の除算処理のステップＡ１３に該当）。
【００６１】
そして、変数Ｚの値が変数ｖの示す桁数を満たしているか否かが判別され（図３の除算処理のステップＡ１４に該当）、満たしていなければ第１１処理として“０”が領域４５に記憶される（図３の除算処理のステップＡ１５に該当）。
【００６２】
続いて、第１２処理として、“Ｘ×１０”即ち“７４０６６×１０”の乗算結果である“７４０６６０”が領域４１に記憶される。更に、“Ｄ×１／１０”即ち“１×１／１０”の乗算結果である“０．１”が領域４６に記憶される（図３の除算処理のステップＡ５に該当）。
【００６３】
そして第１３処理として、領域４８には変数Ｘの値の下３桁を切り捨てた値、即ち“７４０”が、領域４９には変数Ｙの値の下３桁を切り捨てた値、即ち“１２３”が記憶される（図３の除算処理のステップＡ６に該当）。
【００６４】
次に第１４処理として、“Ｘ１−Ｙ１”即ち“７４０−１２３”の減算結果である“６１７”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。変数Ｘ１の値は“０”以上であるから、変数Ｎの値に１加算された値“１”が領域４５に記憶される（図３の除算処理のステップＡ９に該当）。
【００６５】
以下、第１４処理と同様に、第１５〜第１９処理においても“Ｘ１−Ｙ１”の演算と変数Ｎの値に１加算する演算が繰り返される。
【００６６】
そして、第２０処理として、“Ｘ１−Ｙ１”即ち“２−１２３”の減算結果である“−１２１”が領域４８に記憶される（図３の除算処理のステップＡ７に該当）。ここで変数Ｘ１は“０”より小さい値である。従って、第２１処理として、“Ｘ−Ｙ×Ｎ”即ち“７４０６６０−１２３４５６×６”の演算結果である“−７６”が領域４１に記憶される（図３の除算処理のステップＡ１０に該当）。
【００６７】
変数Ｘの値が“０”より小さいか否かが判別される（図３の除算処理のステップＡ１１に該当）。変数Ｘは“０”より小さい値であるため、第２２処理として、変数Ｘ及びＮの値が変更される。つまり、“Ｘ＋Ｙ”即ち“−７６＋１２３４５０”の加算結果“１２３３８０”が領域４１に記憶される。更に“Ｎ−１”即ち“６−１”の減算結果“５”が領域４５に記憶される（図３の除算処理のステップＡ１２に該当）。
【００６８】
そして、第２３処理として、“Ｚ＋Ｎ×Ｄ”即ち“４＋５×０．１”の演算結果である“４．５”が領域４４に記憶される（図３の除算処理のステップＡ１３に該当）。
【００６９】
続いて、変数Ｚの値が変数ｖの値の示す桁数を満たしているか否かが判別され（図３の除算処理のステップＡ１４に該当）、満たしていなければ“０”が領域４５に記憶され（図３の除算処理のステップＡ１５に該当）、満たしていれば除算処理は終了する。
【００７０】
更に、ＣＰＵ１１の備えるＰ−ＲＯＭ２００に除算命令ルーチン２１０を記憶させれば、本実施の形態を実現するための特別な回路は必要ない。従って、新たに回路等を設計する必要がなく、簡単に除算演算の演算時間を短縮させることができる。
【００７１】
以上、本発明を適用した実施の形態を説明したが、本発明は上述の実施の形態についてのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００７２】
例えば、上述した実施の形態の演算例として、被除数Ｘ及び除数Ｙを自然数とした”５６７８９０÷１２３４５６”の例を説明したが、被除数Ｘ、除数Ｙ及び変数Ｚの値は自然数に限らず、仮数部及び指数部を含むものであってもよい。例えば、有効桁数を４桁として被除数Ｘを”５．６７８×１０５”とし、除数Ｙを”１．２３４×１０５”としてもよい。この場合、変数Ｘ１及び変数Ｙ１それぞれに代入する被除数Ｘ及び除数Ｙの上位桁の数が有効桁数となる。
【００７３】
また、演算回路部２００の演算処理幅に応じて、変数Ｘ１及び変数Ｙ１それぞれに代入する被除数Ｘ及び除数Ｙの上位桁を決定してもよい。例えば、演算回路部２００が１６ビットでの演算を行う回路であり、被除数や除数の数値がＢＣＤコード化され、１桁４ビットで表される場合には、４桁（＝１６ビット幅／４ビット）を単位として除算処理を行うのが好適である。従って、図３の除算処理のステップＡ６において、被除数Ｘ及び除数Ｙの小数点を基準に４桁ずつ区切った、上位４桁以内の値（例えば、”１２３４５６”であれば”１２”）を変数Ｘ１及び変数Ｙ１にそれぞれ代入するようにしてもよい。特に、ＣＰＵの演算処理幅は２ｎビットであり、ＢＣＤコード化された１桁４ビットの数値を扱う場合には、４桁を単位として除算処理を行うのは好適である。
【００７４】
【発明の効果】
請求項１又は６に記載の発明によれば、被除数及び除数の所定上位桁を抜き出して第２被除数及び第２除数とすることにより、第２被除数及び第２除数の桁数が被除数及び除数の桁数以下となるため、仮値算出手段において第２被除数から第２除数を繰り返し減算する際の演算時間を短縮することができる。従って、除算演算の演算速度を短縮することができる。
【００７５】
更に、本来の演算装置に備わっている加減算器及び乗算器を用いて除算演算を実行可能なため、特別な回路を設置する必要がない。従って、新たに回路等を設計する必要がなく、簡単に除算演算の演算時間を短縮させることができる。
【００７６】
請求項２に記載の発明によれば、前記仮値算出手段によって求められた仮値が被除数と除数の商として正しくない（即ち、減算手段による減算結果が負）場合に、商決定手段によって正しい商に調整することができる。これにより、被除数及び除数の所定上位桁を抜き出した第２被除数及び第２除数によって除算を行っても、被除数と除数の正確な商を得ることができる。
【００７７】
請求項３に記載の発明によれば、減算手段によって被除数を更新し、繰り返し手段によって抜出手段、仮値算出手段、乗算手段、減算手段、商決定手段及び被除数更新手段を繰り返し実行し、繰り返し実行において決定した商を一連の値とすることにより、当該一連の値を被除数と除数の除算結果とすることができる。従って、繰り返し手段による繰り返し実行により、除算結果の桁数を増加させ、除算を実数で求めるといったことができる。
【００７８】
請求項４に記載の発明によれば、除算結果の桁数を任意に設定可能とすることにより、例えば、除算結果の桁数を少なく設定することにより、演算速度を短縮することができる。
【図面の簡単な説明】
【図１】関数電卓の内部構成を示すブロック図。
【図２】演算回路部の回路ブロック図の一例を示す図。
【図３】除算処理の動作を説明するためのフローチャート。
【図４】例題を用いて除算処理の流れについて説明するための図。
【図５】図４に続く、例題を用いて除算処理の流れについて説明するための図。
【図６】従来の除算処理の動作を説明するためのフローチャート。
【符号の説明】
１    関数電卓
１１    ＣＰＵ
２００    演算回路部
２１      Ｐ−ＲＯＭ
２１０    除算命令ルーチン
２２      ＰＣ
２３      アドレス指定部
２４      メモリ
２５      命令デコード部
２６      演算部
１２    入力部
１３    表示部
１４    通信制御部
１５    ＲＯＭ
１６    ＲＡＭ
１７    外部記憶メモリ
【図１】
2004310432.tif 000003
【図２】
2004310432.tif 000004
【図３】
2004310432.tif 000005
【図４】
2004310432.tif 000006
【図５】
2004310432.tif 000007
【図６】
2004310432.tif 000008