4ビットの時10進数と2進数の対応はこんな感じになります。
10進数 | 2進数 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
0と1しか扱えない時のマイナスの表現
紙に書くときは「-4」を「-0100」と書いてもいいのですが、コンピューターの世界では0と1しか扱えません。ではコンピューターは「-4」を扱えないかというとそんなことはありません。
昔のすごい人たちがちゃんと考えてくれているんです。
ではどうやって表現されるかというと、一番上の位のビットで決められます。具体例から言うと「-4」は「1100」になります。
一番上の位が1だとマイナス
マイナスを扱う、かつ01しか使えない時はこのようにして表現します。
10進数 | 2進数 |
---|---|
-4 | 1100 |
-3 | 1101 |
-2 | 1110 |
-1 | 1111 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
足し合わせると0
「-1」と「1」を足すと0になりますよね。
「1111」と「0001」を足すと「0000」になりますね。すごーい。
それ以外の数に対しても試してみてください。
マイナスの2進数の求め方
2進数の場合マイナスの求め方はすごい簡単です。
「4」を例にとって求めてみましょう。
まず「4」を2進数にします。
「0100」
次に各桁の0と1を入れ替えます。
「1011」
最後に1を足します。
「1100」
完成!
0と1を入れ替えたもの同士を足すと全部の位が1になりますね。
0100 + 1011 = 1111
これでは0まで1少ないので、入れ替えた側の数に1を足してあげれば
0100 + (1011 + 0001) = 0000
4 + -4 = 0
の完成です。