コンピュータのマイナスの数はどうやって表すの?
〜1の補数と2の補数をやさしく解説〜
千葉県松戸市の はなまるパソコン教室 では、プログラミングやタイピング、パソコンの基礎など、子どもから大人まで楽しく学べる講座をご用意しています。
このブログでは、授業では扱わないような少し難しいコンピュータの仕組みについても、わかりやすく解説しています。今回はその一例として、「マイナスの数をどうやってコンピュータが表すのか?」 を紹介します。
1. コンピュータは 0 と 1 だけで数字を表す
コンピュータの世界では、すべての数字を 0 と 1 の組み合わせで表しています。これを「2進数」といいます。
ふつうの2進数では、
0000 (0), 0001 (1), 0010 (2), 0011 (3) …
のように、マイナスではない数しか表せません。
では「-1」や「-2」といった マイナスの数 はどう表すのでしょうか?
2. いろいろあった昔の方法
(1) 符号・絶対値方式
一番左のビットを「プラス/マイナスの符号」にして表す方法です。
0 0010 → +2 1 0010 → -2
わかりやすいけれど、引き算の計算が複雑になります。
(2) 1の補数方式
正の数のビットを 反転(0を1、1を0にひっくり返す) してマイナスを作る方法です。
+2 = 0000 0010 反転すると → 1111 1101
これを「-2」とするのが 1の補数方式です。
ただし、この方法には欠点があります。
- 0000 0000(+0)と 1111 1111(-0)が両方存在してしまう
- 計算回路がややこしい
つまり、「0が2つある」という変なことが起きるのです。
(3) 2の補数方式
そこで登場するのが「2の補数(にのほすう)」。これは現代のコンピュータで使われている標準的な方法です。
やり方はとてもシンプルです。
- 正の数を2進数にする
- ビットを反転する(1の補数を作る)
- さらに +1 をする(これで完成!)
こうすることで、
- 0は1つだけになる
- 足し算・引き算もきれいにできる
3. 2の補数の例(-2を作ってみよう)
- +2 を2進数で表す
0000 0010
- ビットを反転する(1の補数)
1111 1101
- +1 をする(2の補数完成!)
1111 1110
👉 この「1111 1110」が -2 の2の補数表現です。
4. 計算してみよう!
1111 1110 (-2) +0000 0010 (+2) ---------------- 0000 0000 (0)
バッチリ 0 になりました!これが2の補数のすごいところです。
5. 1の補数と2の補数の違い
方法 | 作り方 | 問題点 | 今の使われ方 |
---|---|---|---|
1の補数 | ビットを反転するだけ | +0と-0が両方できてしまう | 使われない |
2の補数 | 反転してさらに+1する | 0は1つだけ、計算も簡単 | コンピュータ標準 |
6. まとめ
- コンピュータは 0 と 1 しか使えないので、マイナスを表す工夫が必要
- 1の補数:反転するだけ → 0が2つできて不便
- 2の補数:反転して+1 → 0が1つだけ、計算もラク!
- だから今のコンピュータは 2の補数方式 を使っている
7. 覚え方
「2の補数は、マイナスの数を足し算だけで計算できるようにする魔法のルール」
8. はなまるパソコン教室について
はなまるパソコン教室(千葉県松戸市)は、小学生・中学生から大人・シニアまで幅広い方にパソコンの楽しさをお伝えしています。タイピングやOffice(Word・Excel・PowerPoint)、プログラミング、資格対策まで、ひとりひとりのペースに合わせた丁寧な指導を行っています。
このブログでは、授業の内容にとどまらず、今回のように「コンピュータの仕組み」や「ITの豆知識」も発信しています。興味を持った方はぜひ教室のページもご覧ください。