負の数の表示
以下では8ビットの整数について考えます。
(10進数の -1) を2進数で表示する場合は
符号を反転した数値との和が0になればよい
です。つまり、この場合だと
との和が0になればよいので、
1111 1111
が答えになります。
0000 0001 と 1111 1111 の和は
となりますが、8ビットで考えているため9ビット目は取り除かれます。すると結果的に答えは
0000 0000
となります。
負数の簡単な計算方法
補数の簡単な求め方は次の通りです。
2の補数を求めるには、各ビットを反転させて1を加算する。
(参考:2の補数 - Wikipedia)
これを参考にを求めてみます。
まず、を2進数に直すと、
0000 0001
となります。
次に、これの各ビットを反転させると、
1111 1110
となります。
これに1を加えると、
1111 1111
となり先ほど求めたものと一致します。
補数を求めるときは「各ビットを反転させて1を加算する」という手法を用いて、求めた結果が正しいかを判断するために「和が0になるかを調べる」という手法を用いると計算ミスが減ると思います。
8ビット符号付整数で表現できる最小値
8ビットでの最小値は。
です。
一方、最大値は
となります。
最大値の絶対値と比較して最小値の絶対値の方が1大きいため、「各ビットを反転させて1を加算する」という手法で最小値は求まりませんが、最大値と最小値の和を求めると、
となり、
となることから、
であることは確かめられます。
例題 -42の表現
まず、
まず、を2進数に直すと、
0010 1010
となります。
次に、これの各ビットを反転させると、
1101 0101
となります。
これに1を加えると、答えが求まるで、
となります。
との和を求めると0になることが確かめられます。