読み方 : げんざんき
減算器【subtractor】
概要

半減算器は、二つの1ビットの2進数を入力し、その差と繰り下がり(ボロー)を出力する回路である。差は二つの排他的論理和(XOR)、ボローは二つの否定の論理積(AND)で求められる。これは下位桁からの繰り下がりを扱えないため、単独では複数桁の減算に対応できない。
そこで用いられるのが全減算器である。二つの入力値に加え、下位桁からのボローを合わせた三つの信号を入力し、差と上位桁へのボローを出力する。全減算器は半減算器を二つと論理和(OR)回路を組み合わせて構成でき、これを桁数分だけ直列に接続すれば、任意の桁数の減算回路を実現できる。
このような各桁のボローが順次上位桁へ伝わっていく構成は単純で実装しやすい一方、桁数が増えるとボローの伝搬に時間がかかり、演算全体の速度に影響する。そのため、高速な演算回路ではボローの伝搬を効率化する工夫が行われることもある。
実際のコンピュータの内部では、減算器を専用回路として独立に持たず、加算器を用いて減算を行う設計が多く採用されている。これは、ある数を引くことが、その数の2の補数を求めて足すことと等価であるという性質を利用したものである。2の補数は、2進数の各ビットを反転させた値に1を加えることで求められる。この方法を用いれば加算器の回路をそのまま流用でき、回路構成の簡略化やハードウェア規模の抑制が可能となる。
(2026.7.3更新)