JPH0242251B2 - - Google Patents
Info
- Publication number
- JPH0242251B2 JPH0242251B2 JP59024565A JP2456584A JPH0242251B2 JP H0242251 B2 JPH0242251 B2 JP H0242251B2 JP 59024565 A JP59024565 A JP 59024565A JP 2456584 A JP2456584 A JP 2456584A JP H0242251 B2 JPH0242251 B2 JP H0242251B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- decimal
- bits
- contents
- adder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明の10進数変換方式に係り、特に、2進数
を2進化10進数に変換する演算方式に関する。
を2進化10進数に変換する演算方式に関する。
例えば32ビツト長の2進数を2進化10進数(4
ビツトで10進数の1桁を表現する)に変換する場
合、4ビツト当り2進数では16通り表現できるの
に、10進数では10通りの値しか表現できないた
め、変換された2進化10進数は、当然32ビツト長
より大きく、最大10桁(40ビツト長)になる。こ
の変換を32ビツト長の10進加算器を用いて実施す
る場合の従来技術を第1図および第2図により説
明する。
ビツトで10進数の1桁を表現する)に変換する場
合、4ビツト当り2進数では16通り表現できるの
に、10進数では10通りの値しか表現できないた
め、変換された2進化10進数は、当然32ビツト長
より大きく、最大10桁(40ビツト長)になる。こ
の変換を32ビツト長の10進加算器を用いて実施す
る場合の従来技術を第1図および第2図により説
明する。
第1図は演算回路のブロツク図で、第1図aは
下位32ビツトの計算を行う場合の構成例、第1図
bは上位32ビツトの計算を行う場合の構成例であ
る。第2図は第1図における処理手順を示す図で
ある。
下位32ビツトの計算を行う場合の構成例、第1図
bは上位32ビツトの計算を行う場合の構成例であ
る。第2図は第1図における処理手順を示す図で
ある。
レジスタ2は変換される2進数Zを保持する
(ステツプ101)。レジスタ1およびレジスタ10
は変換された中間の10進数X,Yを保持するレジ
スタであり、初期値はゼロとする(ステツプ102,
103)。レジスタ1は下位32ビツト(下位8桁)、
レジスタ10は上位32ビツト(上位8桁)を保持
する。3は32ビツト長の10進数加算器であり、2
つの入力に対して同じデータを与えることによ
り、2進化10進数表現の2倍数を得る。
(ステツプ101)。レジスタ1およびレジスタ10
は変換された中間の10進数X,Yを保持するレジ
スタであり、初期値はゼロとする(ステツプ102,
103)。レジスタ1は下位32ビツト(下位8桁)、
レジスタ10は上位32ビツト(上位8桁)を保持
する。3は32ビツト長の10進数加算器であり、2
つの入力に対して同じデータを与えることによ
り、2進化10進数表現の2倍数を得る。
第1図aの下位32ビツトの計算では、レジスタ
1の値Xの2倍数にイニシヤル・キヤリーZ00
(Z00はキヤリー入力線7を経由して与えられる2
進数Zの最上位ビツト)を加えたものを10進加算
器3で得、出力線6を経由して再びレジスタ1に
格納する(ステツプ104)。これと同時に、シフタ
4はレジスタ2の内容Zを左に1ビツトシフト
し、出力線8を経由して再びレジスタ2へ格納す
る。加算器3からあふれたキヤリーCはレジスタ
5にセツトする(ステツプ105)。第1図bの上位
32ビツトの計算では、レジスタ10の値Yの2倍
数にレジスタ5の内容Cをイニシヤル・キヤリー
として加えたものを10進加算器3で得、出力線6
を経由して再びレジスタ10に格納する(ステツ
プ106)。これは、10進数に変換される元の2進数
をb0〜b31、1回の演算で得られる中間の10進数
をDiとすれば、代数的に Di+1=2Di+bi(i=0〜31) として表わされる演算を実行しているのに等し
い。
1の値Xの2倍数にイニシヤル・キヤリーZ00
(Z00はキヤリー入力線7を経由して与えられる2
進数Zの最上位ビツト)を加えたものを10進加算
器3で得、出力線6を経由して再びレジスタ1に
格納する(ステツプ104)。これと同時に、シフタ
4はレジスタ2の内容Zを左に1ビツトシフト
し、出力線8を経由して再びレジスタ2へ格納す
る。加算器3からあふれたキヤリーCはレジスタ
5にセツトする(ステツプ105)。第1図bの上位
32ビツトの計算では、レジスタ10の値Yの2倍
数にレジスタ5の内容Cをイニシヤル・キヤリー
として加えたものを10進加算器3で得、出力線6
を経由して再びレジスタ10に格納する(ステツ
プ106)。これは、10進数に変換される元の2進数
をb0〜b31、1回の演算で得られる中間の10進数
をDiとすれば、代数的に Di+1=2Di+bi(i=0〜31) として表わされる演算を実行しているのに等し
い。
ステツプ104,106の演算はそれぞれ32回実行し
た後(ステツプ107)、レジスタ10の内容を変換
後の2進化10進数の上位8桁分Uとしてレジスタ
9−1に格納し(ステツプ108)、レジスタ1の内
容を下位8桁分Lとしてレジスタ9−2に格納す
る(ステツプ109)。
た後(ステツプ107)、レジスタ10の内容を変換
後の2進化10進数の上位8桁分Uとしてレジスタ
9−1に格納し(ステツプ108)、レジスタ1の内
容を下位8桁分Lとしてレジスタ9−2に格納す
る(ステツプ109)。
このように、従来は変換後の10進数が加算器の
データ幅より大きくなるため、下位nビツトの演
算(第2図のステツプ104)を実施した後、その
最上位ビツトからのキヤリーをイニシヤル・キヤ
リーとする上位nビツトの演算(第2図のステツ
プ106)を実施することにより、等価的に2nビツ
トの演算を実現していた。したがつて、例えば、
32ビツト(n=32)の2進数を2進化10進数に変
換するには、第1図a、同bのハード構成に加え
て、第2図のステツプ104,106の演算をそれぞれ
32回実行する必要があり、ハードウエアと演算回
数が増加する欠点があつた。
データ幅より大きくなるため、下位nビツトの演
算(第2図のステツプ104)を実施した後、その
最上位ビツトからのキヤリーをイニシヤル・キヤ
リーとする上位nビツトの演算(第2図のステツ
プ106)を実施することにより、等価的に2nビツ
トの演算を実現していた。したがつて、例えば、
32ビツト(n=32)の2進数を2進化10進数に変
換するには、第1図a、同bのハード構成に加え
て、第2図のステツプ104,106の演算をそれぞれ
32回実行する必要があり、ハードウエアと演算回
数が増加する欠点があつた。
本発明の目的は、従来より少ないハードウエア
で、しかも、より少ない演算回数でもつて2進数
を2進化10進数に変換する10進数変換方式を提供
することにある。
で、しかも、より少ない演算回数でもつて2進数
を2進化10進数に変換する10進数変換方式を提供
することにある。
本発明では、2進数を保持する第1レジスタ
と、途中の2進化10進数を保持する第2レジスタ
と、前記第2レジスタの内容の2倍数に前記第1
レジスタの最上位ビツトをイニシヤル・キヤリー
として加え、結果を前記第2レジスタに格納する
10進加算器とを具備し、前記加算器での1回の演
算毎に前記第1レジスタの内容を上位桁方向にシ
フトすると共に前記加算器からあふれたキヤリー
を前記第1レジスタの最下位ビツトに入力し、該
第1レジスタの内容が零になるまで演算を繰り返
して2進数を2進化10進数に変換する。
と、途中の2進化10進数を保持する第2レジスタ
と、前記第2レジスタの内容の2倍数に前記第1
レジスタの最上位ビツトをイニシヤル・キヤリー
として加え、結果を前記第2レジスタに格納する
10進加算器とを具備し、前記加算器での1回の演
算毎に前記第1レジスタの内容を上位桁方向にシ
フトすると共に前記加算器からあふれたキヤリー
を前記第1レジスタの最下位ビツトに入力し、該
第1レジスタの内容が零になるまで演算を繰り返
して2進数を2進化10進数に変換する。
また、前記第1レジスタの上位に連続してゼロ
が存在する場合、演算を開始する前に前記ゼロの
数だけ前記第1レジスタの内容を上位方向にシフ
トし、該シフトしたビツト数により演算の実行回
数を補正する。さらに、前記加算器からあふれ前
記第1レジスタに入力されたキヤリーの上位に連
続してゼロが存在する場合、演算を再開する前に
前記ゼロの数だけ第1レジスタの内容を上位方向
にシフトし、該シフトしたビツト数により演算回
数を補正する。
が存在する場合、演算を開始する前に前記ゼロの
数だけ前記第1レジスタの内容を上位方向にシフ
トし、該シフトしたビツト数により演算の実行回
数を補正する。さらに、前記加算器からあふれ前
記第1レジスタに入力されたキヤリーの上位に連
続してゼロが存在する場合、演算を再開する前に
前記ゼロの数だけ第1レジスタの内容を上位方向
にシフトし、該シフトしたビツト数により演算回
数を補正する。
第3図は本発明の一実施例のブロツク図を示
す。第3図において、第1図と同一部分には同じ
記号が付されている。11は10進数加算器3の最
上位ビツトのキヤリー出力線であり、変換される
2進数を保持するレジスタ2の最下位ビツト位置
Z31に接続される。第4図に32ビツトの2進数を
2進化10進数に変換する場合の処理フローを示
す。以下、第4図に従つて本発明の変換処理を説
明する。
す。第3図において、第1図と同一部分には同じ
記号が付されている。11は10進数加算器3の最
上位ビツトのキヤリー出力線であり、変換される
2進数を保持するレジスタ2の最下位ビツト位置
Z31に接続される。第4図に32ビツトの2進数を
2進化10進数に変換する場合の処理フローを示
す。以下、第4図に従つて本発明の変換処理を説
明する。
変換すべき2進数Zをレジスタ2へ保持する
(ステツプ201)。結果格納レジスタ9−1,9−
2にゼロをセツトする(ステツプ202)。レジスタ
2の上位にゼロが存在する場合、最上位の有効ビ
ツトがレジスタ2の最上位ビツト位置に来るよう
に左シフト、すなわち、正規化を行う(ステツプ
203)。左シフトされる量は、元の2進数Zの値の
最上位から連続してゼロが存在するビツト数
(z)に等しい。変換された途中の10進数Xを貯
えるレジスタ1に、初期値としてゼロをセツトす
る(ステツプ204)。
(ステツプ201)。結果格納レジスタ9−1,9−
2にゼロをセツトする(ステツプ202)。レジスタ
2の上位にゼロが存在する場合、最上位の有効ビ
ツトがレジスタ2の最上位ビツト位置に来るよう
に左シフト、すなわち、正規化を行う(ステツプ
203)。左シフトされる量は、元の2進数Zの値の
最上位から連続してゼロが存在するビツト数
(z)に等しい。変換された途中の10進数Xを貯
えるレジスタ1に、初期値としてゼロをセツトす
る(ステツプ204)。
32ビツト長の10進加算器3を用いて、レジスタ
1の値Xの2倍数にイニシヤル・キヤリーZ00を
加え、結果を出力線6を経由して再びレジスタ1
に格納する(ステツプ205)。イニシヤル・キヤリ
ーZ00は、レジスタ2に格納されている2進数Z
の正規化後の最上位ビツトがキヤリー入力線7を
経由して与えられる。シフタ4はレジスタ2の内
容を左に1ビツトシフトし、出力線8を経由して
再びレジスタ2へ格納する。この時、32ビツト長
の10進加算器3からあふれたキヤリーCをキヤリ
ー出力線11を経由してレジスタ2の最下位ビツ
トZ31へセツトする(ステツプ206)。
1の値Xの2倍数にイニシヤル・キヤリーZ00を
加え、結果を出力線6を経由して再びレジスタ1
に格納する(ステツプ205)。イニシヤル・キヤリ
ーZ00は、レジスタ2に格納されている2進数Z
の正規化後の最上位ビツトがキヤリー入力線7を
経由して与えられる。シフタ4はレジスタ2の内
容を左に1ビツトシフトし、出力線8を経由して
再びレジスタ2へ格納する。この時、32ビツト長
の10進加算器3からあふれたキヤリーCをキヤリ
ー出力線11を経由してレジスタ2の最下位ビツ
トZ31へセツトする(ステツプ206)。
上記ステツプ205,206の処理を(32−z)回繰
り返した後(ステツプ207)、レジスタ1の内容
(下位8桁分の10進数値L)をレジスタ9−2
(下位8桁分格納レジスタ)に格納する(ステツ
プ208)。この時、レジスタ2には加算器3のあふ
れとして、上位8桁分が2進数で格納されてい
る。このレジスタ2の内容がオールゼロならば演
算を終了し、ゼロ以外ならば、処理203の正規化
処理から再開する(ステツプ209)。そして、この
2回目の処理におけるレジスタ1の内容(上位8
桁分の10進数値U)をレジスタ9−1(上位8桁
分格納レジスタ)に格納し、演算を終了とする。
り返した後(ステツプ207)、レジスタ1の内容
(下位8桁分の10進数値L)をレジスタ9−2
(下位8桁分格納レジスタ)に格納する(ステツ
プ208)。この時、レジスタ2には加算器3のあふ
れとして、上位8桁分が2進数で格納されてい
る。このレジスタ2の内容がオールゼロならば演
算を終了し、ゼロ以外ならば、処理203の正規化
処理から再開する(ステツプ209)。そして、この
2回目の処理におけるレジスタ1の内容(上位8
桁分の10進数値U)をレジスタ9−1(上位8桁
分格納レジスタ)に格納し、演算を終了とする。
ここで、与えられた2進数が32ビツト有効(z
=0)な場合、従来方式では64回の加算が必要で
あるのに対して、本実施例では、32回の加算終了
時、レジスタ2には上位8桁分として最大6ビツ
トの有効ビツトがセツトされるので、さらに6回
の加算を行うだけでよく、合計38回の加算動作で
終了する。従つて、本実施例は、従来技術に比べ
て、演算回数を26回減らすことが可能である。
=0)な場合、従来方式では64回の加算が必要で
あるのに対して、本実施例では、32回の加算終了
時、レジスタ2には上位8桁分として最大6ビツ
トの有効ビツトがセツトされるので、さらに6回
の加算を行うだけでよく、合計38回の加算動作で
終了する。従つて、本実施例は、従来技術に比べ
て、演算回数を26回減らすことが可能である。
さらに、与えられた2進数が16ビツト有効であ
れば、従来方式では、やはり64回の加算が必要で
あるのに対し、本実施例では、(32−16)回つま
り16回の加算のみで10進数が得られることにな
り、演算回数を48回減らすことが可能である。
れば、従来方式では、やはり64回の加算が必要で
あるのに対し、本実施例では、(32−16)回つま
り16回の加算のみで10進数が得られることにな
り、演算回数を48回減らすことが可能である。
演算回路も従来は第1図aおよびbの2種必要
であるのに対して、本発明では第3図の1種の演
算回路のみで済み、より少ないハードウエアで実
現することが可能である。
であるのに対して、本発明では第3図の1種の演
算回路のみで済み、より少ないハードウエアで実
現することが可能である。
〔発明の効果〕
本発明によれば次のような効果が得られる。
(1) 例えば32ビツト長の2進数を2進化10進数
(4ビツトで10進数の1桁を表現する場合)に
変換する場合、4ビツト当り2進数では16通り
表現できるのに、10進数では10通りの値しか表
現できないため、変換された2進化10進数は当
然32ビツト長より大きく、最大10桁(40ビツト
長)になる。
(4ビツトで10進数の1桁を表現する場合)に
変換する場合、4ビツト当り2進数では16通り
表現できるのに、10進数では10通りの値しか表
現できないため、変換された2進化10進数は当
然32ビツト長より大きく、最大10桁(40ビツト
長)になる。
特許請求の範囲第1項記載の発明によれば、
加算器からあふれたキヤリーについては、2進
数を保持する第1レジスタの最下位ビツトに入
力して演算を行うので、2進化10進数に変換す
る際に発生する桁あふれについて考慮されてお
り、上記のように例えば32ビツトの2進数を2
進化10進数に変換する時でも32ビツトの加算器
を使用できる。特に第1レジスタのビツト数分
演算を繰り返した後、蓄えたキヤリーが全て零
のときには演算を終了しているので、演算回数
を下位の32ビツト分だけでよいという効果があ
る。さらに、加算器からあふれたキヤリーを保
持するための別の装置を必要としないという効
果もある。
加算器からあふれたキヤリーについては、2進
数を保持する第1レジスタの最下位ビツトに入
力して演算を行うので、2進化10進数に変換す
る際に発生する桁あふれについて考慮されてお
り、上記のように例えば32ビツトの2進数を2
進化10進数に変換する時でも32ビツトの加算器
を使用できる。特に第1レジスタのビツト数分
演算を繰り返した後、蓄えたキヤリーが全て零
のときには演算を終了しているので、演算回数
を下位の32ビツト分だけでよいという効果があ
る。さらに、加算器からあふれたキヤリーを保
持するための別の装置を必要としないという効
果もある。
(2) 特許請求の範囲第2項記載の発明によれば、
最初に第1レジスタに設定された内容の上位に
連続してゼロが存在する場合には、演算を開始
する前に正規化するので、最初に第1レジスタ
に設定されたビツト数から、上記ほ正規化で上
位方向にシフトしたビツト数を引いたビツト数
だけ演算を行うだけでよい。従つて、最初に第
1レジスタに設定された内容の上位に連続して
ゼロが存在する場合には、少ない演算回数で変
換を行うことができるという効果がある。
最初に第1レジスタに設定された内容の上位に
連続してゼロが存在する場合には、演算を開始
する前に正規化するので、最初に第1レジスタ
に設定されたビツト数から、上記ほ正規化で上
位方向にシフトしたビツト数を引いたビツト数
だけ演算を行うだけでよい。従つて、最初に第
1レジスタに設定された内容の上位に連続して
ゼロが存在する場合には、少ない演算回数で変
換を行うことができるという効果がある。
(3) 特許請求の範囲第3項記載の発明によれば、
加算器からあふれ第1レジスタに入力されたキ
ヤリーがすべて零でない場合は、再び演算を開
始する前に第1レジスタの内容を正規化したし
て、その正規化によつて上位方向にシフトした
ビツト数を、最初に第1レジスタに設定された
ビツト数からひいたビツト数分だけ演算を行う
ので、再び演算を実行する際には、一回目の演
算回数よりシフトしたビツト数分だけ演算回数
が減り、例えば32ビツト長の2進数の場合、最
大6回の演算を行えばよいという効果がある。
加算器からあふれ第1レジスタに入力されたキ
ヤリーがすべて零でない場合は、再び演算を開
始する前に第1レジスタの内容を正規化したし
て、その正規化によつて上位方向にシフトした
ビツト数を、最初に第1レジスタに設定された
ビツト数からひいたビツト数分だけ演算を行う
ので、再び演算を実行する際には、一回目の演
算回数よりシフトしたビツト数分だけ演算回数
が減り、例えば32ビツト長の2進数の場合、最
大6回の演算を行えばよいという効果がある。
第1図aおよびbは従来の10進数変換方式の構
成例を示すブロツク図、第2図は第1図aおよび
bの場合の処理手順を示す図、第3図は本発明の
一実施例のブロツク図、第4図は第3図の場合の
処理手順を示す図である。 1……中間の10進数値格納レジスタ、2……2
進数値格納レジスタ、3……10進加算器、4……
シフタ、9−1,9−2……結果格納レジスタ、
11……キヤリー出力線。
成例を示すブロツク図、第2図は第1図aおよび
bの場合の処理手順を示す図、第3図は本発明の
一実施例のブロツク図、第4図は第3図の場合の
処理手順を示す図である。 1……中間の10進数値格納レジスタ、2……2
進数値格納レジスタ、3……10進加算器、4……
シフタ、9−1,9−2……結果格納レジスタ、
11……キヤリー出力線。
Claims (1)
- 【特許請求の範囲】 1 2進数を保持する第1レジスタと、途中の2
進化10進数を保持する第2レジスタと、前記第2
レジスタの内容の2倍数に前記第1レジスタの最
上位ビツトをイニシヤル・キヤリーとして加え、
結果を前記第2レジスタに格納する10進加算器と
を具備し、前記加算器での1回の演算毎に前記第
1レジスタの内容を上位桁方向にシフトすると共
に前記加算器からあふれたキヤリーを前記第1レ
ジスタの最下位ビツトに入力し、該第1レジスタ
の内容が零になるまで演算を繰り返して2進数を
2進化10進数に変換することを特徴とする10進数
変換方式。 2 前記第1レジスタの上位に連続してゼロが存
在する場合、演算を開始する前に前記ゼロの数だ
け前記第1レジスタの内容を上位方向にシフト
し、該シフトしたビツト数により演算の実行回数
を補正することを特徴とする特許請求の範囲第1
項記載の10進数変換方式。 3 前記加算器からあふれ前記第1レジスタに入
力されたキヤリーの上位に連続してゼロが存在す
る場合、演算を再開する前に前記ゼロの数だけ第
1レジスタの内容を上位方向にシフトし、該シフ
トしたビツト数により演算回数を補正することを
特徴とする特許請求の範囲第1項記載の10進変換
方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2456584A JPS60169229A (ja) | 1984-02-13 | 1984-02-13 | 10進数変換方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2456584A JPS60169229A (ja) | 1984-02-13 | 1984-02-13 | 10進数変換方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60169229A JPS60169229A (ja) | 1985-09-02 |
| JPH0242251B2 true JPH0242251B2 (ja) | 1990-09-21 |
Family
ID=12141675
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2456584A Granted JPS60169229A (ja) | 1984-02-13 | 1984-02-13 | 10進数変換方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS60169229A (ja) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6051133B2 (ja) * | 1980-12-10 | 1985-11-12 | 株式会社東芝 | 自然対数変換装置 |
-
1984
- 1984-02-13 JP JP2456584A patent/JPS60169229A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS60169229A (ja) | 1985-09-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5506799A (en) | Booth array multiplying circuit having carry correction | |
| US4172288A (en) | Binary or BCD adder with precorrected result | |
| KR950006580B1 (ko) | 나눗셈연산장치 | |
| JP3276852B2 (ja) | 符号変換回路 | |
| JPS60140429A (ja) | 10進乗算装置 | |
| JPH0234054B2 (ja) | ||
| JPH0242251B2 (ja) | ||
| JP2579321B2 (ja) | バイナリ処理装置 | |
| JP3184670B2 (ja) | 画像符号化装置 | |
| JPS6248857B2 (ja) | ||
| JPS623330A (ja) | 加算器 | |
| JP2777265B2 (ja) | 高基数開平演算装置 | |
| JPS592055B2 (ja) | 開平演算方式 | |
| JPS61213926A (ja) | Dsp演算処理方式 | |
| JP2550597B2 (ja) | 2乗器 | |
| JPH01191231A (ja) | 不連続2進数値データの演算処理方式 | |
| JP3278488B2 (ja) | 10進演算装置 | |
| US4141077A (en) | Method for dividing two numbers and device for effecting same | |
| JP2519288B2 (ja) | 乗除算器 | |
| JPS60665Y2 (ja) | 演算制御装置 | |
| JPH04263317A (ja) | 演算装置 | |
| JPS585838A (ja) | シフト回路 | |
| JP2968718B2 (ja) | 演算装置 | |
| JP2995721B2 (ja) | 除算装置および除算方法 | |
| JP3477866B2 (ja) | 除算器の除算方法 |