の補数表示では、ビット列
の表す
数は
の補数表示を用いる理由は、符号無しの場合の演算をする場合と回路が 共通化出来ること、複数のワードを用いて広い範囲の数を表現する多倍 長整数の演算の実現が簡単なことである。
演算をすることによって、結果が ビットの範囲に収まらなくなった場
合は、とにかく下位 ビットは残し、溢れ出たものは適当に処理する (こ
とが多い)。加算、減算ならば溢れるのは 1 ビットなので、CPU に備わっ
ているフラグに記憶する。乗算の場合は、溢れたものを捨ててしまうか、別の
レジスターに収めることにする。加減算についてはデータを符号無しと考えて
も、符号有りと考えても、結果の下位 ビットは同じものになることに注意。
10進数で説明すると
これに対して割算については、正数同士の場合はあまり問題がないが、負数 を含む演算の結果についてはあまり合理的な説明は出来ない。割り切れない場 合、剰余の符号をどう取るか、それに関連して商 (整数) をどうするか。 ( ÷ は `` 余り '' なのか、 `` 余り '' なのか。 割る数×商+剰余が割られた数にならない場合もある(ひどい)。)