余りのある整数除算(符号なし)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/26 11:07 UTC 版)
「除算 (デジタル)」の記事における「余りのある整数除算(符号なし)」の解説
ここで示すアルゴリズムでは、N を D で割って、商 Q と余り R (remainder) を得る。いずれの値も符号なし整数として扱う。 procedure divide_unsigned(N, D: unsigned_integer; var Q, R: unsigned_integer);const n = 32; (* ビット数 *)var i: integer;begin if D = 0 then raise DivisionByZeroException; (* 商と余りをゼロで初期化 *) Q := 0; R := 0; for i := n-1 downto 0 do begin R := 2 * R; (* R を1ビット左シフト *) R := R + ((N shr i) mod 2); (* Rの最下位ビットを被除数のiビット目と等しく設定する *) if R >= D then begin R := R - D; Q := Q + (1 shl i); end; end;end; これは、後述の回復型と基本的には同じである。
※この「余りのある整数除算(符号なし)」の解説は、「除算 (デジタル)」の解説の一部です。
「余りのある整数除算(符号なし)」を含む「除算 (デジタル)」の記事については、「除算 (デジタル)」の概要を参照ください。
- 余りのある整数除算のページへのリンク