JP3433487B2 - 2進10進変換器 - Google Patents

2進10進変換器

Info

Publication number
JP3433487B2
JP3433487B2 JP30692893A JP30692893A JP3433487B2 JP 3433487 B2 JP3433487 B2 JP 3433487B2 JP 30692893 A JP30692893 A JP 30692893A JP 30692893 A JP30692893 A JP 30692893A JP 3433487 B2 JP3433487 B2 JP 3433487B2
Authority
JP
Japan
Prior art keywords
digit
circuit
decimal
register
value
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 - Fee Related
Application number
JP30692893A
Other languages
English (en)
Other versions
JPH07160478A (ja
Inventor
敏光 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP30692893A priority Critical patent/JP3433487B2/ja
Publication of JPH07160478A publication Critical patent/JPH07160478A/ja
Application granted granted Critical
Publication of JP3433487B2 publication Critical patent/JP3433487B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機等の演算回路に使
用する2進10進変換器に関する。
【0002】
【従来の技術】2進10進変換の場合、2進数を4ビット
単位に区切って16進数として扱うと都合がよい。変換対
象のオペランド(16進数)Mは、各桁の数を、 hm ,h
m-1,hm-2,・・・, h2, h1として、次のように表せる。
【0003】 M= hm * 16m-1+ hm-1 * 16m-2+ hm-2 * 16m-3+・・・+h2*161+h1*160 これを10進数に変換するには、i番目の桁 hi * 16
i-1 について考えれば、16i-1 を10進数で計算して被乗
数とし、 hi を10進2桁の数の乗数として10進乗算を行
うことにより得られる。16i-1 を計算するには、最下位
桁(i=1)では160=1であるから1つ上位の桁にな
るたびに16を乗じることで得られる。このような2段
階の乗算をオペランドの各桁ごとに行って、それらの総
和を計算すればよい。
【0004】しかし、そのためには高速な10進乗算器
が必要であるが構成が大きくなるため実施されていなか
った。代わりに、 hi (0〜15) および i (桁数) のすべ
ての組合せの hi * 16i-1 値をテーブルにしてメモリに
保持し、 hi と iによって索引して得た値を加算する方
法が行なわれている。この方法は変換テーブルのための
メモリビット数が多く必要である。
【0005】
【発明が解決しようとする課題】本発明は、オペランド
の各桁の数を変形することにより、10進乗算回路を簡易
化し、基本原理に則った2進10進変換器を実現するこ
とを目的としている。
【0006】
【課題を解決するための手段】図1は本発明の実施例の
構成図である。16進1桁の重みを10進数に変換した
値を保持するための重み保持レジスタ1と、入力された
16進オペランドを受けいれ、下位桁から順に1桁ずつ
出力する機能をもつオペランドレジスタ2と、オペラン
ドレジスタ2の1桁の値を入力とし、その値を調べて、
10を表す信号と、8以下の偶数を表す信号と、1を表
す信号とに分離して出力する係数成分分離回路3と、重
み保持レジスタ1の各桁に対応して存在し、重み保持レ
ジスタ1の1桁と、係数成分分離回路3の偶数を表す信
号出力とを入力とし、それらの積を2桁の10進数とし
て出力する、桁偶数乗算回路4と、係数成分分離回路3
の10を表す信号出力と1を表す信号出力とに従って、
重み保持レジスタ1の10倍の値と1倍の値とを出力す
る10倍回路5と、結果レジスタ7の値と、桁偶数乗算
回路4および10倍回路5の出力とを加算するための1
0進多桁加算回路6と、10進多桁加算回路6の出力を
保持する結果レジスタ7と、全体を制御する制御回路8
とを備える。
【0007】制御回路8は、オペランドレジスタ2の1
桁ごとに、重み計算フェーズと係数乗算フェーズとを設
けて2段階の演算を行なう。重み計算フェーズでは、最
下位桁では初期値として重み保持レジスタ1に10進
‘1' の値をセットし、結果レジスタを‘0' にリセット
し、その他の桁では桁偶数乗算回路4と10倍回路5と
10進多桁加算回路6とを制御して、重み保持レジスタ
1の内容の16倍を算出して重み保持レジスタ1にセッ
トする。
【0008】係数乗算フェーズでは、係数成分分離回路
3の出力信号に従って出力される桁ごとの桁偶数乗算回
路4の各上位桁を連結したものと各下位桁を連結したも
のの2つの出力と10倍回路5の2つの出力と、結果レ
ジスタの出力とを10進多桁加算回路6により加算す
る。
【0009】これを最下位桁から始めて最上位桁まで行
なうように制御する。制御回路8は、重み計算フェーズ
において、重み保持レジスタ1の内容の16倍を算出す
るのに、10倍の値と6倍の値とを算出してその和をと
るようにしてもよいが、桁偶数乗算回路4の片方の入力
に、係数成分分離回路3の偶数を表す信号出力の代わり
に定数‘4' を入れ、重み保持レジスタ1の内容の4倍
を計算することを2回行なうようにしてもよい。
【0010】10進多桁加算回路6は2入力で構成する
ことも可能であるが、多入力加算回路として構成すると
演算サイクルを少なくすることができる。
【0011】
【作用】16進m桁のオペランドMは、各桁の数を hm
hm-1, hm-2,・・・, h2, h1として、次のように表せ
る。
【0012】 M= hm * 16m-1+ hm-1 * 16m-2+ hm-2 * 16m-3+・・・+h2*161+h1*160 従来技術の項で述べたように、これを10進数に変換す
るには、i番目の桁の値 hi * 16i-1 について考えれ
ば、重み16i-1 を10進数に変換して被乗数とし、 hi
10進2桁の数の乗数として10進乗算を行うことにより得
られる。
【0013】重み16i-1 は1つ下位桁の重み16i-2 の16
倍である。最下位桁(i=1)の重みは 160=1である
から、最下位桁から始めて1つ上位の桁になるたびに1
6を乗じることで得られる。従って、重み計算のための
16倍演算と、その結果に係数を乗ずる演算との2段階の
乗算をオペランドの各桁ごとに行って、それらの総和を
計算すればよい。
【0014】重み計算の16倍演算は10倍と6倍とを
計算し、その和としてもよいが、4倍×4倍=16倍と
すると、おなじ2サイクルでもより簡単である。係数 h
i は0〜15の値をとる数である。これを10,偶数,1の
3つの成分に分けその和として表現することができる。
【0015】hi = t+e+o t:10成分 10または0 e:偶数成分 偶数値 2,4,6,8のいずれか o:奇数成分 1または0 従って、 hi * 16i-1 =16i-1*t +16i-1*e +16
i-1*o である。
【0016】係数成分分離回路3は、オペランドの1桁
の値(係数)を10,偶数,1を表すt,e,oの3つの
成分信号に分離し、桁偶数乗算回路4と10倍回路5とは
それらの信号に従って、それぞれ16i-1*t,16i-1*e,
16i-1*oの値を出力する。なお、桁偶数乗算回路4の出
力は10進1桁分の結果を2桁の値として出力するので、
それぞれの桁偶数乗算回路4の出力の上位桁を連結した
もの(C=16i-1*ec)と下位桁を連結したもの(S=1
6i-1*es )の2つの10進数として現れる。それらの
和が16i-1*eである。すなわち、 hi * 16i-1 =16i-1*t +16i-1*ec +16i-1*es +16i-1*o である。
【0017】制御回路8はオペランドの最下位桁から始
めて、各桁ごとに、重み演算と係数乗算とを行なう。重
み計算フェーズでは、重み保持レジスタに存在する1つ
下位の重みの値が16倍されて、その桁の重みの10進数
値として重み保持レジスタ1に得られる。16倍演算
は、10倍と6倍とを計算しその和とする場合も、4倍
×4倍=16倍とする場合も桁偶数乗算回路4と10倍
回路5を制御すれば2サイクルで可能である。
【0018】係数乗算フェーズでは、重み保持レジスタ
1の内容に係数の各成分を乗じて得られる前記の4つの
数として、桁偶数乗算回路4および10倍回路5の出力
が得られ、これらを結果レジスタ7に加えれば、同時に
それまでの下位桁の値との和が得られる。もし、10進
多桁加算回路6が、2入力構成であれば、結果レジスタ
7の値に4サイクルで順次前記の4つの数を加えるよう
に制御すればよい。図1のように3入力構成であれば2
サイクルで済む。
【0019】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1は本発明の実施例の構成図である。図におい
て、重み保持レジスタ1は、オペランドの最大値の10
進変換値を収容するに必要なだけの桁数の10進数を保
持できるレジスタである。オペランドレジスタ2は1桁
ずつ右シフトできるように構成してあり、最下位の4ビ
ットを係数成分分離回路3へ出力する。
【0020】係数成分分離回路3は1桁の16進数の値を
10、偶数、1の3成分に分離して出力する回路で単純
な論理回路で実現できる。桁偶数乗算回路4は10進1桁
の数と10進1桁の偶数との積を出力する回路で、その機
能を図2に示す。これは九九表を論理回路で構成するこ
とに相当し、片方の入力が偶数に限られるので図2
(1)の半九九表を実現すればよく、それだけ簡単な論
理回路として構成できる。(2)(3)は出力の上位桁
Cと下位桁Sとに分けたものである。
【0021】10倍回路は重み保持レジスタ1の内容を
10倍した出力と1倍した出力とを係数成分分離回路3
の10成分と1成分出力に従って出力する回路であり、1
0倍は1桁左へシフトし、1倍はそのまま出力するだけ
の単純な論理回路である。
【0022】10進多桁加算回路6は、10進数を2つ以上
加算する回路であればよい。図1では3入力としてあ
る。3入力の場合は、1入力に結果レジスタの出力を、
他の2つの入力に2回に分けて、前述の4成分を2つず
つ入力するように制御すればよい。3入力の10進加算器
は、特願平5−300711に示したようにすれば簡単
かつ高速に構成できる。
【0023】図3は、16進数X’ACD763を10進数
に変換する演算例を説明する図である。また、図4は、
それをタイムチャートとして説明した図である。図にお
いては最下位桁の処理を表す。重み計算フェーズは演
算サイクル1で、重み保持レジスタ1に初期値‘1' を
セットする。係数乗算フェーズとして、演算サイクル2
で桁偶数乗算回路4によりオペランドの偶数成分との積
を計算し、演算サイクル3で10倍および奇数成分の加算
を行なう。第2桁以上では、重み計算フェーズは2サイ
クル必要とする。それぞれのサイクルで重み保持レジス
タ1の内容を4倍して、16倍の値を得る。桁偶数乗算回
路4の片方の入力に定数‘4' を入れ、10進多桁加算回
路6の他の入力を閉じて素通りさせるように制御する。
なお、10倍と6倍とを計算し、その和として16倍を得る
ようにしてもよいが、重み保持レジスタ1のバックアッ
プレジスタが必要である。その後、係数乗算フェーズは
オペランドが偶数成分だけ、または10倍および奇数
(1倍)成分だけであれば1サイクルで、そうでなけれ
は2サイクルで処理を行なう。
【0024】
【発明の効果】以上説明したように、本発明によれば、
簡単な回路の組合せで比較的高速な2進10進変換器を実
現することができる。
【図面の簡単な説明】
【図1】 実施例の構成図
【図2】 桁偶数乗算回路の機能説明図
【図3】 実施例の演算例の説明図
【図4】 実施例のタイムチャート
【符号の説明】
1 重み保持レジスタ 2 オペランドレジスタ 3 係数成分分離回路 4 桁偶数乗算回路 5 10倍回路 6 10進多桁加算回路 7 結果レジスタ 8 制御回路
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/38 G06F 7/52 H03M 7/04 H03M 7/08

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 16進1桁の重みを10進数に変換した
    値を保持するための重み保持レジスタ(1)と、 入力された16進オペランドを受けいれ、下位桁から順
    に1桁ずつ出力する機能をもつオペランドレジスタ
    (2)と、 オペランドレジスタ(2)の1桁の値を入力とし、その
    値を調べて、10を表す信号と、8以下の偶数を表す信
    号と、1を表す信号とに分離して出力する係数成分分離
    回路(3)と、 重み保持レジスタ(1)の各桁に対応して存在し、重み
    保持レジスタ(1)の1桁と、係数成分分離回路(3)
    の偶数を表す信号出力とを入力とし、それらの積を2桁
    の10進数として出力する、桁偶数乗算回路(4)と、 係数成分分離回路(3)の10を表す信号出力と1を表
    す信号出力とに従って、重み保持レジスタ(1)の10
    倍の値と1倍の値とを出力する10倍回路(5)と、 結果レジスタ(7)の値と、桁偶数乗算回路(4)およ
    び10倍回路(5)の出力とを加算するための10進多
    桁加算回路(6)と、 10進多桁加算回路(6)の出力を保持する結果レジス
    タ(7)と、 全体を制御する制御回路(8)とを備え、 制御回路(8)は、オペランドレジスタ(2)の1桁ご
    とに、重み計算フェーズと係数乗算フェーズとを設け、 重み計算フェーズでは、最下位桁では初期値として重み
    保持レジスタ(1)に10進‘1' の値をセットし、結
    果レジスタを‘0' にリセットし、 その他の桁では桁偶数乗算回路(4)と10倍回路
    (5)と10進多桁加算回路(6)とを制御して、重み
    保持レジスタ(1)の内容の16倍を算出して重み保持
    レジスタ(1)にセットし、 係数乗算フェーズでは、係数成分分離回路(3)の出力
    信号に従って出力される桁ごとの桁偶数乗算回路(4)
    の各上位桁を連結したものと各下位桁を連結したものの
    2つの出力と10倍回路(5)の2つの出力と、結果レ
    ジスタの出力とを10進多桁加算回路(6)により加算
    するように最下位桁から始めて最上位桁まで制御するよ
    うに構成した2進10進変換器。
  2. 【請求項2】 制御回路(8)は、重み計算フェーズに
    おいて、桁偶数乗算回路(4)の片方の入力に、係数成
    分分離回路(3)の偶数を表す信号出力の代わりに定数
    ‘4' を入れ、重み保持レジスタ(1)の内容の4倍を
    計算することを2回行なうことにより16倍を得ること
    を特徴とする請求項1に記載の2進10進変換器。
  3. 【請求項3】 10進多桁加算回路(6)を多入力加算
    回路として構成することを特徴とする請求項1に記載の
    2進10進変換器。
JP30692893A 1993-12-08 1993-12-08 2進10進変換器 Expired - Fee Related JP3433487B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30692893A JP3433487B2 (ja) 1993-12-08 1993-12-08 2進10進変換器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30692893A JP3433487B2 (ja) 1993-12-08 1993-12-08 2進10進変換器

Publications (2)

Publication Number Publication Date
JPH07160478A JPH07160478A (ja) 1995-06-23
JP3433487B2 true JP3433487B2 (ja) 2003-08-04

Family

ID=17962972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30692893A Expired - Fee Related JP3433487B2 (ja) 1993-12-08 1993-12-08 2進10進変換器

Country Status (1)

Country Link
JP (1) JP3433487B2 (ja)

Also Published As

Publication number Publication date
JPH07160478A (ja) 1995-06-23

Similar Documents

Publication Publication Date Title
US6609143B1 (en) Method and apparatus for arithmetic operation
JPS6375932A (ja) ディジタル乗算器
US20140136588A1 (en) Method and apparatus for multiplying binary operands
JPS62280930A (ja) デイジタル乗算器
EP0670061B1 (en) Enhanced fast multiplier
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
JP3433487B2 (ja) 2進10進変換器
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
JPH05158659A (ja) 乗算器
US5258945A (en) Method and apparatus for generating multiples of BCD number
US5691930A (en) Booth encoder in a binary multiplier
US3222506A (en) Variable radix adder and subtractor
JP2635696B2 (ja) 乗算命令処理方式
JPS60112141A (ja) 乗算回路
JP2734438B2 (ja) 乗算装置
JP3231298B2 (ja) 乗算装置
JP2606339B2 (ja) 乗算器
JP3155026B2 (ja) 累算器
JPH0784762A (ja) 乗算回路
JP3417172B2 (ja) 演算回路
JP3230354B2 (ja) 高速10進乗算器
JPH05224888A (ja) 小数点位置可変型データの乗算回路
SU1626252A1 (ru) Множительное устройство
JPS62214435A (ja) デイジタル除算回路
JPH0368415B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030430

LAPS Cancellation because of no payment of annual fees