2進数

中学校コンピューターサイエンス2進数の位取り:各ビットの値は、右隣のビットの2倍

8 + 2 + 1 = 11

11

この実験について

コンピューターの中では、数字、文字、画像、音声のすべてが、オフまたはオンのスイッチのパターン、つまり0か1として保存されています。スイッチ1つが1ビットです。10進数では各桁の値が右隣の桁の10倍になるのと同じように、各ビットの値は右隣のビットの2倍になります。つまり、1、2、4、8、16……です。ビットをオン・オフに切り替えながら数を数え、桁上がりが順に伝わる様子を見てみましょう。2進数から10進数や16進数に変換し、コンピューターが負の数をどのように保存するかも確かめてみましょう。

学習目標

  • 2進数は、0と1の2つの数字だけを使う、基数2の数の表し方であることを説明する
  • 8ビットまでの2進数と10進数を相互に変換する
  • 2進数で数え、桁上がりの仕組みを説明する
  • 指定されたビット数で保存できる最大の数を求める
  • 2進数を16進数に変換し、オーバーフローと2の補数について説明する

使い方

  1. 14ビットを使い、1ビットずつオンにします。各ビットの値を書き出しましょう。どんなパターンに気づきましたか?
  2. 24ビットで5、9、15を作りましょう。どのビットを使いましたか?
  3. 30から「+1」を何度も押します。毎回変わるビットはどれですか?最も変わる頻度が低いビットはどれですか?
  4. 44ビットで15まで数え、もう一度「+1」を押してください。何が起こりますか?その理由は何でしょう?
  5. 58ビットに切り替えてください。作れる最大の数はいくつですか?2⁸ - 1 と比べてみましょう。
  6. 6負の数をオンにしてください。左端のビットの値はいくつになりましたか?-1 と -128 を作ってみましょう。
  7. 7「数を作る」を選び、5つの目標を解いてみましょう。最も大きいビットから始めてみてください。

モデル

2進数から10進数へ:オンになっているビットの位の値を足します。
nビットでは、0から2ⁿ - 1までの2ⁿ通りの値を保存できます。
4ビットごとのグループが、16進数の1桁になります。
2の補数:符号を反転するには、すべてのビットを反転して1を加えます

前提条件

  • 通常の数と同じように、ビットは最上位ビットを左にして書きます。
  • 符号なし数の範囲は0から2ⁿ - 1です。負の数を有効にすると、2の補数が使われ、左端のビットの値は-2ⁿ⁻¹になります。
  • 最大値に1を足すと、最小値に戻ります。これは実際の固定幅コンピューター演算と同じ動作で、「オーバーフロー」と呼ばれます。
  • チャレンジの数は固定された順序で決まっているため、どのクラスでも同じ目標に同じ順番で取り組みます。

授業で試してみましょう

  1. Q12進数の10110を10進数に変換してください。
  2. Q28ビットを使って、10進数の45を2進数に変換してください。
  3. Q31000までの数を保存するには、何ビット必要ですか?
  4. Q4末尾が1の2進数は、なぜ必ず奇数を表すのですか?
  5. Q58ビットの2の補数で、1111 1110はいくつですか?その答えになる理由を説明してください。

よくある質問

コンピューターはなぜ10進法ではなく2進法を使うのですか?

電子スイッチは、オフとオンの2つの状態だけを扱えばよい場合、信頼性の高いものを簡単に作れます。10進数の各桁を表すために10種類の異なる電圧レベルを見分けるのは、はるかに難しく、間違いも起きやすくなります。

バイトとは何ですか?

1バイトは8ビットです。0から255までの256種類の値、または英語の通常のテキストの1文字を保存できます。

16進数はなぜ便利なのですか?

長い2進数は読みづらいものです。16 = 2⁴なので、4ビットごとのまとまりはちょうど1桁の16進数になります。そのため、プログラマーは2進数を短く表す方法として16進数を使います。たとえば、#FF8800のようなカラーコードに使われています。