(57)【要約】【課題】端数処理の単純化により、データ変換処理の高速化を実現するデータ変換処理装置およびデータ変換処理方法を提供する。【解決手段】浮動小数点形式の数値データを１０進数の表示データに変換して表示部に表示させるデータ変換処理装置およびデータ変換処理方法。数値データから抽出した指数部が端数処理基準範囲内であれば、当該指数部を加算値テーブルに照らして加算値を選定する。そして、数値データから抽出した仮数部に加算値を加えた数値データをもとに１０進数の表示データを生成し、表示部に表示させる。【選択図】図１
2019003452.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点形式の数値データを１０進数の表示データに変換して表示部に表示させるデータ変換処理装置であって、
前記数値データから指数部を抽出する指数抽出部と、
前記指数部が端数処理基準範囲内であるか否かを判定する基準範囲判定部と、
前記端数処理基準範囲内の浮動小数点形式の値と、端数処理用の複数の加算値とを関連づけた加算値テーブルを記憶する記憶部と、
前記基準範囲判定部において前記指数部が前記端数処理基準範囲内であると判定された場合、前記指数部を前記加算値テーブルに照らして、前記指数部に対応する前記加算値を選定する加算値選定部と、
前記数値データから仮数部を抽出し、抽出した前記仮数部に前記加算値選定部が選定した前記加算値を加える加算処理部と、
前記加算処理部によって前記仮数部に前記加算値が加えられた前記数値データをもとに前記表示データを生成する表示データ生成部と、
前記表示データを前記表示部に表示させる表示処理部と、を有するデータ変換処理装置。
【請求項２】
前記表示データ生成部は、
前記加算処理部が前記加算値を加えたことで前記仮数部に桁上げが生じた場合、前記加算値が加えられた前記仮数部を１ビットだけ右にシフトすると共に、前記指数部をインクリメントして、前記表示データを生成するものである請求項１に記載のデータ変換処理装置。
【請求項３】
前記加算値テーブル内の複数の前記加算値は、前記表示データの小数第１位から小数第６位までのそれぞれを四捨五入する値に対応しており、
前記加算処理部は、前記仮数部に前記加算値を加えることにより、前記端数処理としての四捨五入を行うものである請求項１又は２に記載のデータ変換処理装置。
【請求項４】
浮動小数点形式の数値データから指数部を抽出する指数抽出ステップと、
前記指数部が端数処理基準範囲内であるか否かを判定する基準範囲判定ステップと、
前記基準範囲判定ステップで前記指数部が前記端数処理基準範囲内であると判定した場合、前記指数部を、前記端数処理基準範囲内の浮動小数点形式の値と端数処理用の複数の加算値とを関連づけた加算値テーブルに照らして、前記指数部に対応する前記加算値を選定する加算値選定ステップと、
前記数値データから仮数部を抽出し、抽出した前記仮数部に前記加算値選定ステップで選定した前記加算値を加える加算処理ステップと、
前記加算処理ステップで前記仮数部に前記加算値が加えられた前記数値データをもとに１０進数の表示データを生成する表示データ生成ステップと、
前記表示データ生成ステップで生成した前記表示データを表示部に表示させる表示処理ステップと、を有するデータ変換処理方法。
【請求項５】
前記表示データ生成ステップでは、
前記加算処理ステップで前記加算値を加えたことで前記仮数部に桁上げが生じた場合、前記加算値が加えられた前記仮数部を１ビットだけ右にシフトすると共に、前記指数部をインクリメントして、前記表示データを生成する請求項４に記載のデータ変換処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、浮動小数点形式の数値データを１０進数の表示データに変換するデータ変換処理装置およびデータ変換処理方法に関する。
【背景技術】
【０００２】
従来から、積算熱量計又は温度調節器などの機器は、各種のパラメータ又は計測値などの数値データを、ＩＥＥＥ７４５規格に従う浮動小数点形式で記憶するようになっている。一方、こうした機器は、各種のパラメータ又は計測値などを、１０進数の固定小数点形式で表示部に表示させる（例えば、特許文献１参照）。そのため、特許文献１に開示されているような機器は、浮動小数点形式の数値データを、１０進数の固定小数点形式の表示データに変換するデータ変換処理装置を含んで構成されている。
【０００３】
データ変換処理装置は、数値データを表示データに変換する際、数値データを整数と小数点位置とに分解する必要があり、より有効な範囲で表示データを表示させるために、小数点位置を可変としている。例えば、データ変換処理装置は、数値データに応じて、表示データの小数点位置を「．ＸＸＸＸＸ」〜「ＸＸＸＸＸ．」のように可変とすることで、有効数字５桁を確保している。なお、「Ｘ」は１０進数である１桁の任意の自然数とする。
【０００４】
ここで、上記のように、小数点位置を可変とする場合は、浮動小数点形式の数値データから、どの桁で端数処理を行うかを判断して四捨五入を行う必要がある。表示データが０．５、０．２５、０．１２５などの特別な数値でない限り、浮動小数点形式のバイナリである数値データは、小数点以下が循環小数になるからである。
【０００５】
例えば、四捨五入せずに端数を切り捨てた場合、「０．３」と入力したデータが「０．２９９９９９９」と表示されたりして、機器の信頼性が低下することになる。そこで、従来のデータ変換処理装置には、１００００、１０００、１００、１０、１、および０．１と、１０進数に換算した整数部とを比較することにより、整数部の有効桁数が何桁あるかを判定し、判定の結果に応じて、四捨五入の際に加算する値を決定するものがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１０９５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のデータ変換処理装置における手法では、小数第１位から小数第６位までの桁ごとに判定処理を行う必要があるため、端数処理が複雑になり、表示データへの変換に時間がかかるという課題がある。
【０００８】
本発明は、上記の課題を解決するためになされたもので、端数処理の単純化により、データ変換処理の高速化を実現するデータ変換処理装置およびデータ変換処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るデータ変換処理装置は、浮動小数点形式の数値データを１０進数の表示データに変換して表示部に表示させるデータ変換処理装置であって、数値データから指数部を抽出する指数抽出部と、指数部が端数処理基準範囲内であるか否かを判定する基準範囲判定部と、端数処理基準範囲内の浮動小数点形式の値と、端数処理用の複数の加算値とを関連づけた加算値テーブルを記憶する記憶部と、基準範囲判定部において指数部が端数処理基準範囲内であると判定された場合、指数部を加算値テーブルに照らして、指数部に対応する加算値を選定する加算値選定部と、数値データから仮数部を抽出し、抽出した仮数部に加算値選定部が選定した加算値を加える加算処理部と、加算処理部によって仮数部に加算値が加えられた数値データをもとに表示データを生成する表示データ生成部と、表示データを表示部に表示させる表示処理部と、を有するものである。
【００１０】
本発明に係るデータ変換処理方法は、浮動小数点形式の数値データから指数部を抽出する指数抽出ステップと、指数部が端数処理基準範囲内であるか否かを判定する基準範囲判定ステップと、基準範囲判定ステップで指数部が端数処理基準範囲内であると判定した場合、指数部を、端数処理基準範囲内の浮動小数点形式の値と端数処理用の複数の加算値とを関連づけた加算値テーブルに照らして、指数部に対応する加算値を選定する加算値選定ステップと、数値データから仮数部を抽出し、抽出した仮数部に加算値選定ステップで選定した加算値を加える加算処理ステップと、加算処理ステップで仮数部に加算値が加えられた数値データをもとに１０進数の表示データを生成する表示データ生成ステップと、表示データ生成ステップで生成した表示データを表示部に表示させる表示処理ステップと、を有している。
【発明の効果】
【００１１】
本発明によれば、数値データから抽出した指数部が端数処理基準範囲内にあれば、当該指数部を加算値テーブルに照らして端数処理用の加算値を選定し、仮数部に加算値を加えた数値データをもとに表示データを生成することから、複雑な処理を減らすことができる。よって、端数処理の単純化により、データ変換処理の高速化を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るデータ変換処理装置の機能的な構成を示すブロック図である。
【図２】図１の記憶部に記憶されている数値データと加算値との関係を説明するための表である。
【図３】図２に対応する加算値テーブルを例示した表である。
【図４】図１の記憶部に記憶された数値データの構成を示す説明図である。
【図５】図１のパラメータ設定装置によるパラメータ設定処理を示すフローチャートである。
【図６】本発明の実施形態の変形例に係るデータ変換処理装置の記憶部に記憶されている数値データと加算値との関係を説明するための表である。
【図７】図６に対応する加算値テーブルを例示した表である。
【発明を実施するための形態】
【００１３】
実施形態．
図１は、本発明の実施形態に係るデータ変換処理装置の機能的な構成を示すブロック図である。図２は、図１の記憶部に記憶されている数値データと加算値との関係を説明するための表である。図３は、図２に対応する加算値テーブルを例示した表である。図４は、図１の記憶部に記憶された数値データの構成を示す説明図である。図１〜図４に基づき、データ変換処理装置１００の構成について説明する。
【００１４】
図１に示すように、データ変換処理装置１００は、通信部１０と、入力部２０と、記憶部３０と、制御部４０と、表示部５０と、を有している。データ変換処理装置１００は、ＩＥＥＥ７４５規格に従う浮動小数点形式の数値データを、１０進数の表示データに変換して表示部５０に表示させるものである。
【００１５】
通信部１０は、外部の機器との間で、有線又は無線により通信を行うものである。入力部２０は、ユーザによる入力操作を受け付け、入力操作の内容に応じた信号を制御部４０へ出力するものである。
【００１６】
記憶部３０には、種々のデータおよび制御部４０の動作プログラムが格納されている。より具体的に、記憶部３０には、端数処理基準範囲内の浮動小数点形式の値と、端数処理用の複数の加算値とを関連づけた加算値テーブルが格納されている。端数処理基準範囲は、下限閾値から上限閾値までの範囲であり、表示部５０に表示させる表示データの桁数に応じて予め設定されている。すなわち、加算値テーブルは、表示部５０に表示される数値の最下位の桁よりも１つ下の桁に、端数処理としての四捨五入が施されるよう、下限閾値から上限閾値までの値と加算値とが関連づけられている。また、記憶部３０には、数値データが、ＩＥＥＥ７４５規格に準拠した単精度浮動小数点形式のバイナリで記憶されている。
【００１７】
ここで、図２の表をもとに、端数処理基準範囲、および数値データの指数部と加算値との関係について説明する。図２の表において、一列目には、数値データの指数部に対応する値を、浮動小数点形式、つまり１６進数で表した値が並んでいる。以降では、数値データの指数部に対応する値を「指数部参照値」という。二列目には、一列目の指数部参照値に対応するべき乗値が並んでいる。すなわち、一列目の指数部参照値は、二列目のべき乗値にバイアスである「１２７」を加えた値を１６進数に変換したものである。
【００１８】
ところで、端数処理基準範囲、つまり下限閾値および上限閾値は、それぞれ、下記の「−ｍ１」および「ｍ２」に基づいて設定される。すなわち、有効数字ｎ桁の表示を確保する場合、下限閾値のべき乗値である「−ｍ１」は、「０．２５×１０−ｎ＜２−ｍ１＜０．５×１０−ｎ（２−２×１０−ｎ＜２−ｍ１＜２−１×１０−ｎ）」を満たす値に設定される。同じく、有効数字ｎ桁の表示を確保する場合、上限閾値のべき乗値である「ｍ２」は、「０．５×１０ｎ＜２ｍ２＜１．０×１０ｎ（２−１×１０ｎ＜２ｍ２＜２０×１０ｎ）」を満たす値に設定される。なお、ｎ、ｍ１、ｍ２は、任意の自然数である。下限閾値および上限閾値を導出するための上記各不等式は、何れも、下限値に対し上限値が２倍となっているため、ｍ１およびｍ２は、任意のｎに対して一意に決まる。
【００１９】
本実施形態のデータ変換処理装置１００は、小数点以下の桁数が０桁〜５桁の表示データを表示するようになっている。つまり、データ変換処理装置１００は、有効数字５桁の表示を確保できるようになっている。そのため、下限閾値は、「０．２５×１０−５＜２−１８＜０．５×１０−５」であることから、べき乗値「−１８」にバイアスである「１２７」を加えた「１０９」を１６進数で表した「６Ｄ」となる。また、上限閾値は、「０．５×１０５＜２１６＜１．０×１０５」であることから、べき乗値「１６」にバイアスである「１２７」を加えた「１４３」を１６進数で表した「８Ｆ」となる。
【００２０】
図２の表において、三列目には、二列目のべき乗値による２のべき乗の値が並んでいる。２のべき乗の値のうち、無限小数になるものには、端数処理が施されている。例えば、「６Ｄ」に対応する「０．０００００４」は、２−１８である「０．０００００３８１４６９・・・・」を小数第７位で四捨五入した値である。
【００２１】
図２の表において、四列目には、加算値を１０進数で表した値が並んでいる。五列目には、加算値を浮動小数点形式、つまり１６進数で表した値が並んでいる。六列目には、加算値の仮数部を１６進数で表した値が並んでいる。七列目には、加算値の指数部を１６進数で表した値が並んでいる。八列目には、一列目に示す指数部参照値と、七列目に示す加算値の指数部との差が並んでいる。九列目には、四捨五入用の加算値が並んでいる。九列目の加算値は、四列目の加算値を、指数部参照値を考慮して浮動小数点形式に変換した値であり、データ変換処理装置１００が、端数処理に際して実際に用いる加算値である。
【００２２】
そして、本実施形態の加算値テーブルでは、図３に示すように、下限閾値から上限閾値までの指数部参照値、すなわち「６Ｄ」〜「８Ｆ」のそれぞれと、端数処理用の複数の加算値とが関連づけられている。ここで、下限閾値から上限閾値までの指数部参照値は、前述の小数点以下何桁目で四捨五入するかによって一意に決まるもので、本発明の「端数処理基準範囲内の浮動小数点形式の値」に相当する。
【００２３】
加算値テーブルの加算値は、図２の四列目に示すように、１０進数の「０．５、０．０５、０．００５、０．０００５、０．００００５、又は０．０００００５」に対応している。このように、加算値テーブル内の複数の加算値は、表示データの小数第１位から小数第６位までのそれぞれを四捨五入する値に対応している。つまり、本実施形態における加算値テーブルは、数値データの指数部に応じて、小数第１位から小数第６位までの何れかに四捨五入を施すためのものであり、表示部５０に５桁の数値を表示させる５桁表示用に構成されている。
【００２４】
表示部５０は、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）などからなり、種々のデータを表示するものである。例えば、表示部５０は、各種のパラメータの設定値又は調整値を表示する。データ変換処理装置１００が積算熱量計などの計測器に搭載される場合、表示部５０は、計測値を表示するように構成される。
【００２５】
制御部４０は、送受信処理部４１と、指数抽出部４２と、基準範囲判定部４３と、加算値選定部４４と、加算処理部４５と、表示データ生成部４６と、表示処理部４７と、を有している。
【００２６】
送受信処理部４１は、通信部１０を介して、種々のデータの送受信を行うものである。送受信処理部４１は、通信部１０を介して受信した数値のデータを、浮動小数点形式の数値データとして記憶部３０に記憶させる。データ変換処理装置１００が積算熱量計などの計測器に搭載される場合、送受信処理部４１は、検出器による検出値を、増幅回路などを介して経時的に受信し、浮動小数点形式の数値データとして記憶部３０に記憶させる。ユーザが入力部２０を操作して、パラメータの設定を行った場合、送受信処理部４１は、入力部２０を介してパラメータの設定値を取得し、浮動小数点形式の数値データとして記憶部３０に記憶させる。
【００２７】
指数抽出部４２は、記憶部３０に記憶されている数値データから指数部を抽出するものである。指数抽出部４２は、入力部２０を介してのユーザの指示に応じて、記憶部３０から数値データを読み出し、読み出した数値データから指数部を抽出する。例えば、入力部２０を介してパラメータの設定値の表示が要求された場合、指数抽出部４２は、数値データとしてのパラメータの設定値を記憶部３０から読み出して指数部を抽出する。
【００２８】
データ変換処理装置１００が積算熱量計などの計測器に搭載されている場合は、経時的な検出値に基づく数値データを、表示データに変換した上で表示部５０に表示させる必要がある。そのため、指数抽出部４２は、検出値に基づく数値データが記憶部３０において更新される度に、これを読み出して指数部を抽出する。
【００２９】
指数抽出部４２は、図２および図３の一列目のような形式で指数部を抽出する。基準範囲判定部４３は、指数抽出部４２が抽出した指数部が端数処理基準範囲内であるか否かを判定するものである。すなわち、基準範囲判定部４３は、指数部が下限閾値より小さいか否かを判定する機能と、指数部が上限閾値より大きいか否かを判定する機能と、を有しており、指数部が下限閾値から上限閾値までの値であれば、端数処理基準範囲内であると判定する。
【００３０】
加算値選定部４４は、基準範囲判定部４３において、指数抽出部４２が抽出した指数部が端数処理基準範囲内であると判定された場合、指数部を加算値テーブルに照らして、当該指数部に対応する加算値を選定するものである。すなわち、加算値選定部４４は、指数抽出部４２が抽出した指数部と同じ値の指数部参照値を加算値デーブルから検索し、検索した指数部参照値に対応する加算値を選定するものである。
【００３１】
加算処理部４５は、数値データから仮数部を抽出し、抽出した仮数部に、加算値選定部４４が選定した加算値を加えるものである。これにより、加算値選定部４４は、表示部５０に表示される数値の最下位の桁よりも１つ下の桁に、四捨五入を施すことができる。すなわち、図２および図３を参照すると、加算値選定部４４による加算処理は、数値データの指数部が「６Ｄ」〜「７Ｅ」の場合、「０．０００００５」によって小数第６位を四捨五入する処理に相当する。同様に、数値データの指数部が「７Ｆ」〜「８２」の場合は、「０．００００５」によって小数第５位を四捨五入する処理に相当する。数値データの指数部が「８３」〜「８５」の場合は、「０．０００５」によって小数第４位を四捨五入する処理に相当する。数値データの指数部が「８６」〜「８８」の場合は、「０．００５」によって小数第３位を四捨五入する処理に相当する。数値データの指数部が「８９」〜「８Ｃ」の場合は、「０．０５」によって小数第２位を四捨五入する処理に相当する。数値データの指数部が「８Ｄ」〜「８Ｆ」の場合は、「０．５」によって小数第１位を四捨五入する処理に相当する。
【００３２】
表示データ生成部４６は、表示部５０に表示させる５桁の表示データを生成するものである。表示データ生成部４６は、加算処理部４５が加算値を加えたことにより、仮数部に桁上げ（オーバフロー）が生じたか否かを判定するものである。
【００３３】
ここで、図４を参照して、仮数部の桁上げについて説明する。数値データは、図４に示すように、ＩＥＥＥ７４５規格に準拠した単精度浮動小数点形式のバイナリによって記憶部３０に記憶されている。すなわち、数値データは、１ビットの符号部Ｓと、８ビットの指数部Ｅと、２３ビットの仮数部Ｍとにより構成されている。
【００３４】
符号部Ｓは、仮数部Ｍの符号を表したもので、「０」ならば正、「１」ならば負を意味する。指数部Ｅは、２を基数としたべき乗値にバイアスをかけて表したものである。なお、指数部からバイアスである１２７を減算すると、数値データの指数になる。仮数部Ｍは、数値データの仮数の小数点以下を表している。すなわち、仮数部Ｍは、数値データの仮数の先頭の「１」を省略したものであり、仮数部Ｍの先頭に「１．」を付加すれば、数値データの仮数となる。つまり、仮数部Ｍは、仮想的な１ビットを含む２４ビット分の情報を示している。
【００３５】
例えば、２進数の「０．０１１」という数値は、「１．１×２−２」のように正規化できるため、符号部Ｓは「０」となる。また、指数部Ｅは、「−２＋１２７＝１２５」であるため「０１１１１１０１」となり、仮数部Ｍは、「１００００００００００００００００００００００」となる。
【００３６】
上記のように、数値データの仮数部Ｍには、実質的に２４ビット分の情報が含まれている。そして、仮数部Ｍに加算値が加わると、仮数部Ｍの仮想的な１ビットを含む２４ビットに桁上げ、つまりオーバフローが生じることがある。そこで、表示データ生成部４６は、仮数部Ｍの仮想的な１ビットを含む２４ビットに桁上げが生じたか否かを判定し、判定の結果に応じて、数値データに適宜調整を加えるようになっている。
【００３７】
表示データ生成部４６は、仮数部に桁上げが生じていれば、加算値が加えられた仮数部を１ビットだけ右にシフトすると共に、指数部をインクリメントすることにより、桁上げに応じた仮数部および指数部の調整を行うものである。そして、表示データ生成部４６は、調整後の数値データから１０進数の表示データを生成するものである。
【００３８】
一方、表示データ生成部４６は、加算処理部４５が加算値を加えても、仮数部に桁上げが生じていない場合、仮数部に加算値が加えられた数値データから表示データを生成するものである。すなわち、表示データ生成部４６は、加算値が加わった仮数部を含む数値データから、１０進数の表示データを生成するものである。
【００３９】
また、表示データ生成部４６は、指数部が下限閾値より小さければ、小数点以下が５桁未満の数値であるため、表示部５０に「０」と表示される表示データを生成するものである。一方、表示データ生成部４６は、指数部が上限閾値より大きければ、表示させる小数部が存在しないため、端数処理としての四捨五入を実行せずに、もとの数値データから整数部だけを取り出して表示データを生成するものである。ただし、表示データ生成部４６は、生成した表示データが表示桁数を超えている場合、最大値に応じた表示データを生成する。ここで、本実施形態では、表示部５０に５桁の数値を表示させるようになっているため、最大値は「９９９９９」となる。つまり、表示データ生成部４６は、生成した表示データが表示桁数を超えている場合、表示部５０に「９９９９９」と表示される表示データを生成する。もっとも、種々の数値データのそれぞれに応じた表示データの上限値を、予め記憶部３０等に記憶させておいてもよい。そして、表示データ生成部４６は、生成した表示データが表示桁数を超えている場合、上限値に応じた表示データを生成するようにしてもよい。
【００４０】
表示処理部４７は、表示データ生成部４６が生成した表示データを表示部５０に表示させるものである。これにより、表示部５０には、表示データとして、５桁の数値が表示される。すなわち、「Ｘ」を１０進数である１桁の任意の自然数とすると、表示部５０には、「ＸＸＸＸＸ．」「ＸＸＸＸ．Ｘ」「ＸＸＸ．ＸＸ」「ＸＸ．ＸＸＸ」「Ｘ．ＸＸＸＸ」「．ＸＸＸＸＸ」といった数値が表示データとして表示される。ここで、指数部が上限閾値よりも大きい場合、表示部５０には、表示データとして整数が表示される。
【００４１】
ここで、制御部４０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置と、こうした演算装置と協働して上記の各種機能を実現させる動作プログラムとによって構成することができる。記憶部３０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等のＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等により構成することができる。
【００４２】
図５は、図１のパラメータ設定装置によるパラメータ設定処理を示すフローチャートである。図５に基づき、本実施形態におけるパラメータ設定処理方法について説明する。
【００４３】
（指数抽出ステップ）
指数抽出部４２は、入力部２０を介してのユーザの指示に応じて、又は検出値に基づく数値データなどを送受信処理部４１が記憶部３０に記憶させる度に、記憶部３０から特定の数値データを読み出す（ステップＳ１０１）。そして、指数抽出部４２は、読み出した数値データから指数部を抽出する（ステップＳ１０２）。
【００４４】
（基準範囲判定ステップ）
次に、基準範囲判定部４３は、指数抽出部４２において抽出された指数部が下限閾値より小さいか否かを判定する（ステップＳ１０３）。基準範囲判定部４３は、指数部が下限閾値以上であれば（ステップＳ１０３／Ｎｏ）、指数抽出部４２において抽出された指数部が上限閾値より大きいか否かを判定する（ステップＳ１０４）。そして、基準範囲判定部４３は、指数部が上限閾値以下であれば（ステップＳ１０４／Ｎｏ）、指数部は端数処理基準範囲内であるため、端数処理指令を加算値選定部４４に出力する。
【００４５】
（加算値選定ステップ）
加算値選定部４４は、基準範囲判定部４３から出力された端数処理指令に従い、指数抽出部４２において抽出された指数部を加算値テーブルに照らして、当該指数部に対応する加算値を選定する（ステップＳ１０５）。
【００４６】
（加算処理ステップ）
次いで、加算処理部４５は、数値データから仮数部を抽出し（ステップＳ１０６）、抽出した仮数部に、加算値選定部４４が選定した加算値を加算する（ステップＳ１０７）。
【００４７】
（表示データ生成ステップ）
表示データ生成部４６は、加算処理部４５が加算値を加えたことにより、仮数部に桁上げが生じたか否かを判定する（ステップＳ１０８）。表示データ生成部４６は、仮数部に桁上げが生じていれば（ステップＳ１０８／Ｙｅｓ）、加算値が加えられた仮数部を１ビットだけ右にシフトすると共に、指数部をインクリメントすることにより数値データを調整する。そして、表示データ生成部４６は、調整後の数値データをもとに表示データを生成する（ステップＳ１０９）。一方、表示データ生成部４６は、仮数部に桁上げが生じていなければ（ステップＳ１０８／Ｎｏ）、加算値が加えられた仮数部を含む数値データをもとに表示データを生成する（ステップＳ１１０）。
また、表示データ生成部４６は、基準範囲判定部４３において、指数部が下限閾値より小さいと判定された場合（ステップＳ１０３／Ｙｅｓ）、「０」と表示される表示データを生成する（ステップＳ１１１）。
表示データ生成部４６は、基準範囲判定部４３において、指数部が上限閾値より大きいと判定された場合（ステップＳ１０４／Ｙｅｓ）、端数処理を実行せずに、もとの数値データから表示データを生成する（ステップＳ１１２）。
【００４８】
（表示処理ステップ）
表示処理部４７は、表示データ生成部４６において生成された表示データを表示部５０に表示させる。
【００４９】
以上のように、データ変換処理装置１００は、数値データから抽出した指数部が端数処理基準範囲内にあれば、当該指数部を加算値テーブルに照らして加算値を選定し、仮数部に加算値を加えた数値データをもとに表示データを生成する。よって、複雑な処理を減らすことができるため、端数処理の単純化により、データ変換処理の高速化を実現することができる。すなわち、記憶部３０内の数値データを表示データに変換して表示部５０に表示させるまでの時間を削減することができる。
【００５０】
ところで、従来のデータ変換処理装置１００では、１０進数に換算した整数部が９、９９、９９９、・・・といった数値の場合、四捨五入により桁上げが発生することから、整数部の桁数が１つ増えるため、四捨五入に関する演算を再度行わなければならないという課題がある。この点、本実施形態のデータ変換処理装置１００は、加算値を加えたことで仮数部に桁上げが生じた場合、加算値が加えられた仮数部を１ビットだけ右にシフトさせ、指数部をインクリメントした上で、表示データを生成するようになっている。よって、四捨五入に関する演算を再度行う必要がないため、データ変換処理の更なる高速化を図ることができる。
【００５１】
＜変形例＞
本変形例のデータ変換処理装置は、図１の例と同様の機能的構成を有しているため、同等の構成部材については同一の符号を用いて説明は省略する。本変形例のデータ変換処理装置１００では、記憶部３０に、６桁表示用の加算値テーブルが格納されている。
【００５２】
図６は、本発明の実施形態の変形例に係るデータ変換処理装置の記憶部に記憶されている数値データと加算値との関係を説明するための表である。図７は、図６に対応する加算値テーブルを例示した表である。
【００５３】
図６の表において、一列目には指数部参照値が並んでいる。本変形例のデータ変換処理装置１００は、有効数字６桁の表示を確保できるようになっている。そのため、下限閾値は、「０．２５×１０−６＜２−２１＜０．５×１０−６」であることから、べき乗値「−２１」にバイアスである「１２７」を加えた「１０６」を１６進数で表した「６Ａ」となる。また、上限閾値は、「０．５×１０６＜２１９＜１．０×１０６」であることから、べき乗値「１９」にバイアスである「１２７」を加えた「１４６」を１６進数で表した「９２」となる。すなわち、本変形例の端数処理基準範囲は、下限閾値「６Ａ」から上限閾値「９２」までの範囲に設定されている。一列目の指数部参照値と、一列目〜九列目までの各値との対応関係は、図２の表と同様であるため説明は省略する。
【００５４】
本変形例の加算値テーブルは、図７に示すように、下限閾値から上限閾値までの指数部参照値、すなわち「６Ａ」〜「９２」のそれぞれと、端数処理用の複数の加算値とが関連づけられている。
【００５５】
加算値テーブルの加算値は、図６の四列目に示すように、１０進数の「０．５、０．０５、０．００５、０．０００５、０．００００５、０．０００００５、又は０．００００００５」に対応している。このように、加算値テーブル内の複数の加算値は、表示データの小数第１位から小数第７位までのそれぞれを四捨五入する値に対応している。つまり、本変形例における加算値テーブルは、数値データの指数部に応じて、小数第１位から小数第７位までの何れかに四捨五入を施すためのものである。
【００５６】
本変形例において、加算値選定部４４による加算処理は、数値データの指数部が「６Ａ」〜「７Ｅ」の場合、「０．００００００５」によって小数第７位を四捨五入する処理に相当する。同様に、数値データの指数部が「７Ｆ」〜「８２」の場合は、「０．０００００５」によって小数第６位を四捨五入する処理に相当する。数値データの指数部が「８３」〜「８５」の場合は、「０．００００５」によって小数第５位を四捨五入する処理に相当する。数値データの指数部が「８６」〜「８８」の場合は、「０．０００５」によって小数第４位を四捨五入する処理に相当する。数値データの指数部が「８９」〜「８Ｃ」の場合は、「０．００５」によって小数第３位を四捨五入する処理に相当する。数値データの指数部が「８Ｄ」〜「８Ｆ」の場合は、「０．０５」によって小数第２位を四捨五入する処理に相当する。数値データの指数部が「９０」〜「９２」の場合は、「０．５」によって小数第１位を四捨五入する処理に相当する。
【００５７】
本変形例のデータ変換処理方法は、図５をもとに説明した各工程を有している。本変形例のデータ変換処理装置１００によっても、端数処理の単純化により、データ変換処理の高速化を実現することができる。
【００５８】
上述した実施形態は、データ変換処理装置およびデータ変換処理方法における好適な具体例であり、本発明の技術的範囲は、これらの態様に限定されるものではない。例えば、上記の実施形態では、数値データが、記憶部３０内に、ＩＥＥＥ７４５規格に準拠した単精度浮動小数点形式のバイナリで記憶される場合を例示したが、これに限定されるものではない。データ変換処理装置１００は、数値データを、記憶部３０内に、ＩＥＥＥ７４５規格に準拠した倍精度浮動小数点形式などのバイナリで記憶し、当該形式で各種の処理を実行するようにしてもよい。
【００５９】
また、上記の実施形態では、データ変換処理装置１００が、５桁表示用又は６桁表示用の加算値テーブルを用いる場合を例示したが、これに限定されるものではない。データ変換処理装置１００は、４桁以下の表示用の加算値テーブルを用いてもよいし、７桁表示用の加算値テーブル、あるいは８桁以上の表示用の加算値テーブルを用いてもよい。ただし、単精度浮動小数点では、仮数部が２４ビットしかなく、これは１０進数の７桁程度に相当する。そのため、有効桁８桁以上の表示に対し、完全に対応する加算値テーブルを生成することはできない。よって、有効桁８桁以上で四捨五入した表示データを表示したい場合は、データ変換処理装置１００が、数値データを、ＩＥＥＥ７４５規格に準拠した倍精度浮動小数点形式のバイナリで処理するようにするとよい。このようにすれば、８桁以上の表示用の加算値テーブルを生成して記憶部３０に格納することができるため、データ変換処理装置１００は、小数第９位以下の四捨五入を含んだ端数処理を、迅速かつ高精度に行うことができる。
【００６０】
さらに、データ変換処理装置１００は、対応する桁数が異なる複数の加算値テーブルを記憶部３０に格納していてもよい。そして、データ変換処理装置１００は、表示するデータの特性、又は表示部５０における表示箇所の違いなどに応じて、複数の加算値テーブルを使い分けるようにしてもよい。加えて、データ変換処理装置１００は、異なる複数の桁数に対応する指数部参照値および加算値を含む１つの加算値テーブルを記憶部３０に格納していてもよい。そして、データ変換処理装置１００は、表示するデータの特性、又は表示部５０における表示箇所の違いなどに応じて、異なる桁数の表示データを生成するようにしてもよい。ところで、上記の実施形態は、端数処理として四捨五入を例示したが、これに限らず、データ変換処理装置１００は、端数処理として、五捨五超入を実行するように構成してもよい。
【符号の説明】
【００６１】
１０  通信部、２０  入力部、３０  記憶部、４０  制御部、４１  送受信処理部、４２  指数抽出部、４３  基準範囲判定部、４４  加算値選定部、４５  加算処理部、４６  表示データ生成部、４７  表示処理部、５０  表示部、１００  データ変換処理装置。
【図１】
2019003452.tif 000003
【図２】
2019003452.tif 000004
【図３】
2019003452.tif 000005
【図４】
2019003452.tif 000006
【図５】
2019003452.tif 000007
【図６】
2019003452.tif 000008
【図７】
2019003452.tif 000009