(57)【要約】      （修正有）【課題】ＤＳＰを用いて文字列を変換する場合に、その変換に要する時間を短縮した整数データの文字列変換方法を提供すること。【解決手段】ＤＳＰを用いて、２進数表現の数値データを１０進数表現の文字列に変換する整数データの文字列変換方法において、数値データに０．１を乗算して小数点以下を切り捨て、第１数値データを求める第１工程と、数値データから第１数値データに１０を乗算して得た数値を減算し、１０進数表現の最下位の位の数値を求める第２工程とを有する。【選択図】図１
2007058554.tif 000002
【特許請求の範囲】
【請求項１】
ＤＳＰを用いて、２進数表現の数値データを１０進数表現の文字列に変換する整数データの文字列変換方法において、前記数値データに０．１を乗算して小数点以下を切り捨て、第１数値データを求める第１工程と、前記数値データから前記第１数値データに１０を乗算して得た数値を減算し、１０進数表現の最下位の位の数値を求める第２工程とを有する整数データの文字列変換方法。
【請求項２】
ＤＳＰを用いて、２進数表現の数値データを１０進数表現の文字列に変換する整数データの文字列変換方法において、前記数値データに０．１を乗算して小数点以下を切り捨て、第１数値データを求める第１工程と、前記数値データから前記第１数値データに１０を乗算して得た数値を減算し、１０進数表現の最下位の位の数値を求める第２工程と、前記第１数値データを数値データに置き換え、２進数表現の数値データの１０進数表現の文字列への変換が終了するまで、前記第１工程および前記第２工程を繰り返し、１０進数表現の最下位から１桁ずつ大きくなる位の数値を求める第３工程とを有する整数データの文字列変換方法。
【請求項３】
ＤＳＰを用いて、２進数表現の２進数値データを１０進数表現の文字列に変換する整数データの文字列変換方法において、前記２進数値データよりも小さい数値で、かつその最上位の数値が１でそれよりも小さい位の数値が０である１０進数の補助整数で割算して小数点以下を切り捨て、前記２進数値データの上位データを求める第１工程と、前記２進数値データから前記上位データに前記補助整数を乗算して得た数値を減算して、前記２進数値データの下位データを求める第２工程と、前記上位データおよび前記下位データをそれぞれ数値データに置き換え、請求項１または請求項２記載の整数データの文字列変換方法により、前記上位データおよび前記下位データそれぞれの１０進数表現の最下位の数値を求める第３工程とを有する整数データの文字列変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２進数表現の数値データを１０進数表現の文字列に変換する整数データの文字列変換方法に関する。
【背景技術】
【０００２】
従来の整数データの文字列変換方法は、たとえば２進数表現の数値データを１０進数の文字列に変換する場合、計算器を用いて２進数表現の数値データを１０で割算し、その余りを計算する方法を繰り返し、１０進数の最下位の位から順に各位の数値を求め、１０進数の文字列に変換している。
【０００３】
ここで、従来の整数データの文字列変換方法について、２進数表現の数値データを１０進数表現の文字列に変換する場合を例にとり、図２のフロー図を参照して説明する。この例は、２進数表現の数値データが１２３４の場合である。数値データ（＝１２３４）は実際は２進数表現であるが、説明の都合により１０進数で表示している。
【０００４】
まず、ステップＳ２１において、数値（＝１２３４）を１０で割ってその余りを求め、一の位の数値を取り出す。この手順１の計算内容を式（１）に示す。
【０００５】
手順１：４＝ｍｏｄ（１２３４，１０）              …（１）
（ｍｏｄ：１０で割った余りを求める計算）
次に、ステップＳ２２において、数値（＝１２３４）を１０で割り算し、数値の桁数を１つ下げる。この手順２の計算内容を式（２）に示す。
【０００６】
手順２：１２３＝１２３４／１０                    …（２）
次に、ステップＳ２３において、数値（＝１２３）を１０で割ってその余りを求め、十の位の数値を取り出す。この手順３の計算内容を式（３）に示す。
【０００７】
手順３：３＝ｍｏｄ（１２３，１０）                …（３）
次に、ステップＳ２４において、数値（＝１２３）を１０で割り算し、数値の桁数を１つ下げる。この手順４の計算内容を式（４）に示す。
【０００８】
手順４：１２＝１２３／１０                        …（４）
次に、ステップＳ２５において、数値（＝１２）を１０で割ってその余りを求め、百の位の数値を取り出す。この手順５の計算内容を式（５）に示す。
【０００９】
手順５：２＝ｍｏｄ（１２，１０）                  …（５）
次に、ステップＳ２６において、数値（＝１２）を１０で割り算し、数値の桁数を１つ下げる。そして、ステップＳ２７において、最上位の数値を取り出す。この手順６の計算内容を式（６）に示す。
【００１０】
手順６：１＝１２／１０                            …（６）
上記したように、まず、２進数表現の数値データを１０で割ってその余りを求めて、最下位の桁の数値を取り出し、続いて、１０で割り算して数値の桁数を１つ下げている。その後、桁数を１つ下げた数値データについて、１０で割ってその余りを求め、最下位よりも１つ上位の位の数値を取り出し、続いて、１０で割り算して桁数を１つ下げている。このような手順を繰り返し、２進数表現の数値データを１０進数表現の文字列に変換し、一の位、十の位、百の位、…と１０進数の各位の数値（０〜９）を順に取り出している。
【００１１】
また、計算器を用いて文字列の変換などを行う方法は特許文献１などにも開示されている。
【特許文献１】特開２００４−２２７１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来の整数データの文字列変換方法は、上記したように計算器を用いて、２進数表現の数値データについて「余りの計算」や「割り算」などを繰り返し、１０進数表現の文字列に変換している。
【００１３】
しかし、計算器は、通常、「余りの計算」をする場合は４０クロック程度、また「割り算」をする場合は１０クロック程度の時間を要し、変換処理に要する時間が長くなって、性能が低下するという問題がある。
【００１４】
本発明は、上記した欠点を解決し、ＤＳＰを用いて文字列を変換する場合に、その変換に要する時間を短縮した整数データの文字列変換方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、ＤＳＰを用いて、２進数表現の数値データを１０進数表現の文字列に変換する整数データの文字列変換方法において、前記数値データに０．１を乗算して小数点以下を切り捨て、第１数値データを求める第１工程と、前記数値データから前記第１数値データに１０を乗算して得た数値を減算し、１０進数表現の最下位の位の数値を求める第２工程とを有する。
【発明の効果】
【００１６】
本発明によれば、ＤＳＰを用いた変換処理のほとんどの手順を乗算と引き算で行っている。したがって、変換処理に要する時間が短縮した整数データの文字列変換方法が実現する。
【発明を実施するための最良の形態】
【００１７】
本発明の実施形態について、２進数表現の数値データを１０進数表現の文字列に変換する場合を例にとり、図１のフロー図を参照して説明する。この実施形態は２進数表現の数値データが１２３４の場合で、ＤＳＰを用いて変換処理が行われる。
【００１８】
２進数表現の数値データは、一般に、２0 、２1 、…、２n （ｎ：正の整数）の各位に、１または０の数値を有する２進数で表現される。ここでは説明の都合上、２進数表現の数値データａを１２３４と、仮に１０進数で表示している。
【００１９】
まず、ステップＳ１１において、数値データａ（＝１２３４）を入力値とし、数値データａに０．１を乗算し、小数点以下を切り捨て第１数値データｂ1を求める。その後、数値データａから第１数値データｂ1に１０を乗算して得た数値を減算し、一の位（１０0 の位）の第１数値Ａ１を取り出す。この手順１の計算内容を式（１）、（２）に示す。
【００２０】
手順１：ｂ1＝［１２３４ｘ０．１］＝１２３        …（１）
Ａ１（１の位の数値）＝ａ−ｂ1ｘ１０
＝１２３４−１２３ｘ１０
＝１２３４−１２３０
＝４                  …（２）
なお、ｂ1＝［ａｘ０．１］の式で、［］は整数への切捨て変換を示す。
【００２１】
次に、ステップＳ１２において、第１数値データ（ｂ1＝１２３）を入力値とし、手順１と同様の処理を行い、第２数値データｂ2を求め、十（１０1 ）の位の第２数値Ａ２を取り出す。この手順２の計算内容を式（３）、（４）に示す。
【００２２】
手順２：ｂ2＝［１２３ｘ０．１］＝１２            …（３）
Ａ２＝１２３−１２ｘ１０
＝１２３−１２０＝３                  …（４）
次に、ステップＳ１３において、第２数値データ（ｂ2＝１２）を入力値とし、手順１、２と同様の処理を行い、第３数値データｂ3を求め、百（１０2 ）の位の第３数値Ａ３を取り出す。この手順３の計算内容を式（５）、（６）に示す。
【００２３】
手順３：ｂ3＝［１２ｘ０．１］＝１                …（５）
Ａ３＝１２−１ｘ１０
＝１２−１０＝２                      …（６）
次に、ステップＳ１４において、第３数値データ（ｂ3＝１）を入力値とし、手順１、２、３と同様の処理を行い、第４数値データｂ4を求め、千（１０3 ）の位の第４数値Ａ４を取り出す。この手順４の計算内容を式（７）、（８）に示す。
【００２４】
手順４：ｂ4＝［１ｘ０．１］＝０                  …（７）
Ａ４＝１−０ｘ１０
＝１−０＝１                          …（８）
上記の方法によれば、文字列を変換するＤＳＰの演算は「乗算」と「加減算」の繰り返しとなっている。ＤＳＰを用いた場合、「乗算」や「加減算」はどちらも１クロック程度で実行できるため、文字列の変換に要する時間が短縮し高速化する。
【００２５】
次に、本発明の他の実施形態について説明する。この実施形態は桁数が大きい数値データの変換に有効な方法で、２進数表現の２進数値データがたとえば１２３４５６７８９の場合を例にとって説明する。この２進数値データ（＝１２３４５６７８９）も仮に１０進数で表示している。
【００２６】
この場合、２進数値データの桁数が大きいため、まず、２進数値データを上位データと下位データに分割する。
【００２７】
たとえば、式（９）に示すように、２進数値データを、この２進数値データよりも小さい数値でその最上位の数値が１でそれよりも小さい位の数値がすべて０の１０進数の補助整数、たとえば１００万で割算し、小数点以下を切り捨て、２進数値データの上位データを求める。
【００２８】
上位データ＝［１２３４５６７８９／１００００００］＝１２３…（９）
次に、式（１０）に示すように、２進数値データから上位データに補助整数を乗算して得た数値を減算し、２進数値データの下位データを求める。
【００２９】
下位データ＝１２３４５６７８９−１２３ｘ１００００００
＝４５６７８９                                  …（１０）
次に、上位データおよび下位データについて、それぞれ実施形態１と同じ手順で１０進数の文字列に変換する。
【００３０】
上記した構成によれば、桁数が大きい数値データを、それよりも桁数の少ない上位データと下位データに分割し、上位データと下位データをそれぞれ別々に１０進数の文字列に変換している。この方法は、２進数値データを上位データと下位データに分割する際に「割算」をしている。しかし、それ以降の処理は「余りの計算」や「割算」がないため処理時間が短縮する。また、この方法の場合、２進数値データの桁数が多いほど、処理時間の短縮効果が大きくなる。また、上位データや下位データの桁数が少ないため、乗算誤差も小さくなる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態を説明するフロー図である。
【図２】従来例を説明するフロー図である。
【符号の説明】
【００３２】
Ｓ１１〜Ｓ１４…処理フローのステップ
【図１】
2007058554.tif 000003
【図２】
2007058554.tif 000004