FC2ブログ

思いたったら吉日

効率的な除算アルゴリズムを思いついたので
書き留めます。

忘れずに残しておこうっ!

9÷3を実行する。
2進数だと
9 => 1001
3 => 11

まず、桁を知る。
最上bitから調べて1になったらその桁値を代入。
三項演算で一発!
9 2進数で4桁
3 2進数で2桁

桁の差を求めると
2=4-2
つまり、同期回路なら
結果が出るまで3クロック分!
初期、桁の差は2である。

A:合計値判定用
B:Aの前値
C:結果
D:割る値の大きさ

①3を桁の差だけ左シフト
A= 3 << 桁の差 + B

②Aは9より大きい?小さい?
・小さいならば、(A<=9)
 C= 1 << 桁の差 + C
(1の左シフト)
 B=A
D=A
・大きいならば、(A>9)
 Cはそのまま
 B=0
D=D

③桁の差をデクリメント
桁の差=桁の差-1
①に戻る。

Dが9と同じに値になるので、
そのときのCの値が、
結果です。

ハードウェア記述言語でこれならいけるとおもう!

しかも、
同期回路なら、大きいほうの数の桁数より少ないクロック数で
いける?

とりあえず、シュミレーション回すか
スポンサーサイト



テーマ : 日記
ジャンル : 日記

コメントの投稿

非公開コメント

ぶろぐかんりしゃ

SmartWoods
最近MoEは・・・
一休み

***** ひとこと *****

MoEの後継ともいわれる
Resonance gamez
完全スキルMMOが
気になるところ



********************


↓2016/3/26更新
My MoE









**********

NEWとらっくばっく
あーかいぶ
かてごりー
リンク
ぶろぐないけんさく
RSSふぃーど
おともだちになろ

この人とブロともになる