進数と補数
chotdekiru/cs-binary-3-complementデータの表し方 - 0と1の世界14 枚コンピュータサイエンス
上から下へ、全 14 枚そのまま並べています。
発表モードで開く進数と補数
今日のゴール
このレッスンを終えると、こう言えるようになります。
- 0と1だけでマイナスも表せる
- 「2の補数」という仕組みがある
- 引き算が足し算に変わる便利さ
復習 2進数のおさらい
コンピュータは数を0と1の並びで表していました。
- 1桁が増えるごとに重みが2倍
- 右から1・2・4・8と数える
- 例 1011 は 8+2+1 で 11
問題 マイナスはどう表す?
0と1しか使えないのに、マイナスの数はどう書けばいいのでしょう。
- 紙の上なら「−5」と書ける
- でも使えるのは0と1だけ
- マイナス記号も0と1で表すしかない
単純な方法とその欠点
補数という考え方
時計の針を例に、引くかわりに進める発想を見てみましょう。
1の補数(反転)
まずは全部の桁を0と1で入れ替えるだけの簡単な操作です。
- 0は1へ、1は0へ反転
- 例 0101 → 1010
- これを「1の補数」と呼ぶ
2の補数(反転 +1)
1の補数にもう1足すだけで、マイナスを表す形が完成します。
なぜ2の補数が便利か
2の補数を使うと、引き算をわざわざ用意しなくて済みます。
例 実際に計算してみる
7−5 を、5の2の補数を足す形で計算してみましょう。
桁あふれ(オーバーフロー)
決めた桁数を超えると、はみ出した分が消えてしまいます。
練習問題
ここまでの理解を、かんたんに確かめてみましょう。
- Q1. 1の補数の作り方は?
- Q2. 2の補数は反転のあと何をする?
- Q3. 2の補数で引き算は何に変わる?
表せる範囲
桁数(ビット数)が増えると、表せる数の範囲も広がります。
"
マイナスは「2の補数」という仕組みで、0と1だけで表せます。 反転して1を足すだけ。おかげで引き算が足し算に変わり、コンピュータはシンプルに計算できるのです。