マイナスの符号ビットつきの数を作ろう!


やり方は、2バイトで表されているある数をビット反転して1足すだけ。
それでなにをしてるかって?
プラスの数とマイナスの同じ値の数を足したときに(桁あふれして)全てのビットが0になるようにするんだ!
あとは実例。

00000001 1
11111110 反転してから
11111111 1を足すと-1のできあがり!

00001111 15
11110000 反転してから
11110001 1を足すと-15いっちょう!
00000000 15+(-15)=0 検証完了

00000010 2
11111101 反転
11111110 1を足したら-2
00000000 2と-2を足すときれいに桁溢れして0になります。

ちなみに

10000001 たとえばこれがマイナス1で
00000001 これが1だと
10000000 足してもゼロにならずに困る。


(5/9-10,6/18/2000)

back top