2進数の引き算で補数表現を使うと足し算にできることの説明が見あたら無かったのでやってみる

ここでは2の補数表現の求め方がすでに解っている前提で進める、
(要するに1000-101=010+1=011は相互に変換可能ということ)

結果がプラスになる場合

x        = 5 - 2 (10進数)
x        = 101 - 010 (2進数に変換)
x + 1000 = 101 - 010 + 1000  (両辺に+1000)
x + 1000 = 101 + (1000 - 010)
x + 1000 = 101 + 110 (2の補数表現)
x + 1000 = 1011
x        = 1011 - 1000
x        = 11
x        = 3 (10進数に変換)

結果がマイナスになる場合

x        = 2 - 5 (10進数)
x        = 010 - 101 (2進数に変換)
x + 1000 = 010 - 101 + 1000  (両辺に+1000)
x + 1000 = 010 + (1000 - 101)
x + 1000 = 010 + 011 (2の補数表現)
x + 1000 = 101
x        = 101 - 1000
x        = - (1000 - 101)
x        = - (11) (2の補数表現)
x        = - (3) (10進数に変換)
x        = - 3
このエントリーをはてなブックマークに追加