テクノロジ系基礎理論出題頻度 ★★★

2進数と基数変換

コンピュータが使う2進数を電球のON/OFFで直感的に解説。2進数⇔10進数⇔16進数の変換手順を図で示し、ビット・バイトの考え方まで計算問題が解けるようになります。

この単元の用語:2進数 / 10進数 / 16進数 / 基数変換 / ビット / バイト

コンピュータは0と1しか使わないって聞いたんですけど、本当ですか?

本当だよ。コンピュータの中は電気が流れている(1)か、流れていない(0)かの2つで表しているんだ。電球をイメージするとわかりやすいよ。

2進数は「電球のON/OFF」

私たちがふだん使う数は、0〜9の10種類の数字を使う 10進数 です。9の次で桁が上がって10になります。

一方、2進数 は0と1の2種類だけを使い、1の次で桁が上がります。

10進数012345678
2進数0110111001011101111000

2進数 → 10進数:「位の重み」を足す

10進数では、位の重みが右から 1、10、100、1000…と 10倍ずつ 大きくなります。2進数では右から 1、2、4、8、16…と 2倍ずつ 大きくなります。

ON 1 8の位 OFF 0 4の位 ON 1 2の位 ON 1 1の位 8 + 0 + 2 + 1 = 11
2進数 1011 は、ONになっている電球の重みを足して 10進数の 11

2進数 → 10進数 は、1が立っている位の重み(1・2・4・8・16・32・64・128…)を足すだけ。

位の重み 1・2・4・8・16・32・64・128 は、何度も声に出して覚えてしまおう。これだけで多くの問題がスラスラ解ける。

10進数 → 2進数:2で割って余りを下から読む

10進数を2進数にするには、2で割り続けて、余りを下から順に並べます。

2 ) 13… 余り 1 2 ) 6… 余り 0 2 ) 3… 余り 1 2 ) 1… 余り 1 0 下から 読む 13 → 1101

慣れてきたら、大きい重みから引いていく方法も便利です。13 = 8 + 4 + 1 なので、8・4・1の位が1 → 1101。

16進数:4ビットずつまとめる

2進数は桁が長くなって読みにくいので、16進数 もよく使われます。0〜9に加えて A〜F(10〜15) の16種類の記号を使います。

10進数101112131415
16進数ABCDEF

2進数の 4桁がちょうど16進数の1桁 に対応します(4桁の2進数は0〜15の16通り)。

2進数 10111110 を16進数にする

  1. 右から4桁ずつ区切る:1011 | 1110
  2. それぞれ10進数にする:1011 = 11、1110 = 14
  3. 16進数の記号にする:11 = B、14 = E → 答えは BE

16進数を10進数にするときは、位の重みが 1・16・256… になります。例えば16進数の 2A は、2 × 16 + 10 × 1 = 42 です。

ビットとバイト

  • ビット(bit):0か1かを表す、情報の最小単位。電球1個分
  • バイト(Byte):8ビット = 1バイト

電球が1個なら ON/OFF の 2通り、2個なら 4通り、3個なら 8通り…と、1個増えるたびに2倍になります。

nビットで表せるのは 2n 通り

  • 4ビット → 16通り
  • 8ビット(1バイト)→ 256通り
  • 16ビット → 65,536通り

「8ビットで表せる最大の数」は 255(0〜255 の256通り)。「何通り?」と「最大値は?」で答えが1ずれるので、問題文をよく読もう。

確認クイズ

選択肢をタップすると、すぐに正解と解説が表示されます。

Q12進数の 1101 を10進数で表したものはどれか。

Q210進数の 20 を2進数で表したものはどれか。

Q316進数の 1F を10進数で表したものはどれか。

Q48ビットで表現できるデータの種類(組合せ)は何通りか。