非回復型除算とは? わかりやすく解説

非回復型除算

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/26 11:07 UTC 版)

除算 (デジタル)」の記事における「非回復型除算」の解説

回復型(または非復元型)除算 (non-restoring division) は商の桁の数字として {0,1} ではなく {−1,1} を使用する。引きっ放し法ともいう。二進基数2)の基本的アルゴリズム次の通りprocedure divide_non_restoring(N, D: integer_n_bits; var q: array_n_of_pm1);const n = 32;var i: integer; P: integer_n_bits;begin P := N; for i := 0 to n - 1 do begin if P >= 0 then begin q[(n - 1) - i] := 1; P := 2 * P - D; end else begin q[(n - 1) - i] := -1; P := 2 * P + D; end; end;end; このアルゴリズム得られる商は、各が −1 と +1 であり、通常の形式ではない。そこで通常の二進形式への変換が必要である。例えば、次のうになる次の結果を {0,1} の通常の二進形式変換する : Q = 111 1 ¯ 1 1 ¯ 1 1 ¯ {\displaystyle Q=111{\bar {1}}1{\bar {1}}1{\bar {1}}} ステップ: 1. 負の項のマスク作る: N = 00010101 {\displaystyle N=00010101\,} 2. Nの2の補数作る: N ¯ = 11101011 {\displaystyle {\bar {N}}=11101011} 3. 正の項のマスク作る: P = 11101010 {\displaystyle P=11101010\,} 4. P {\displaystyle P\,} と N ¯ {\displaystyle {\bar {N}}} の総和: Q = 11010101 {\displaystyle Q=11010101\,} ここで、 N ¯ = n e g ( n o t ( P ) ) = P + 1 {\displaystyle {\bar {N}}={\rm {{neg}({\rm {{not}(P))=P+1}}}}} が成り立つことに注意すると、以下のように修正できるprocedure divide_non_restoring(N, D: integer_n_bits; var Q: integer_n_bits);const n = 32;var i: integer; P: integer_n_bits;begin Q := 0; P := N; for i := 0 to n - 1 do begin if P >= 0 then begin Q := Q + (1 shl ((n - 1) - i)); P := 2 * P - D; end else P := 2 * P + D; end; Q := 2 * Q + 1; if P < 0 then Q := Q - 1; (* 引き過ぎている場合、戻す *)end;

※この「非回復型除算」の解説は、「除算 (デジタル)」の解説の一部です。
「非回復型除算」を含む「除算 (デジタル)」の記事については、「除算 (デジタル)」の概要を参照ください。

ウィキペディア小見出し辞書の「非回復型除算」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「非回復型除算」の関連用語

非回復型除算のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



非回復型除算のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの除算 (デジタル) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS