一覧へ 情報Ⅰ (2) 第4回 | 数値と文字のデジタル表現
情報Ⅰ (2) コミュニケーションと情報デザイン | 第4回

数値と文字のデジタル表現

0 と 1 だけで、なぜ数も文字も表せるのか。8 個のスイッチで自分の誕生日と名前を作る

50分
教師用メモ

準備 教室コードは新しいものにする。「教師」を押す。体験 01・03 は端末内で完結する。

時間配分 前回まとめ・目標 4分 / 節1 8 個のスイッチ 16分 / 節2 何ビット要る 10分 / 節3 文字も数 14分 / まとめ・自己評価・ふりかえり 6分

教科書: 新編情報Ⅰ 14 数値と文字のデジタル表現(p.42)。

この回の評価(指導要領 (2) ア(ア)。二進法による表現、文字のデジタル表現。単元設計は 単元設計のページ)

  • 知識・技能 2 進法と 10 進法を相互に変換し、ビット・バイトと単位(KB・MB・GB)を説明している(体験01・まとめ)
  • 思考・判断・表現 「何通り表したいか」から必要なビット数を求め(体験02)、文字コードに当てはめて文字を 0 と 1 で表現している(体験03)
  • 態度 数値や文字のデジタル化の方法に興味を持ち、身のまわりの例(文字化け・絵文字)と結びつけようとしている(ふりかえり)

ふりかえりの枚の自己評価の分布を見て、「まだ」が多い目標を次回冒頭で拾い直す。

前回のまとめ

コンピュータは ON と OFF の機械 | 1 個増えると 2 倍

1 → 2→2 → 4→3 → 8→5 → 32→n → 2ⁿ

電球 5 個で 32 通りだった。その 32 通りに「数」を割り当てるのが 2 進法。文字にも番号を振れば、文字も 0 と 1 になる

8 個のスイッチで、自分の誕生日の日を作れるか

教師用メモ

前回の自己評価で「まだ」が多かった目標があれば 2 分拾う。

今日の目標

授業の終わりにできるようになること

01
2 進法と 10 進法を、8 ビットの範囲で相互に変換できる
02
表したい通り数から必要なビット数を求め、ビット・バイト・KB・MB の関係を言える
03
文字コードの考え方で、文字が 0 と 1 で表される仕組みと文字化けの理由を説明できる
01 | 16分
8 個のスイッチ

誕生日を 2 進数で作る

02 | 10分
何ビット要る

都道府県を表すには

03 | 14分
文字も数

名前をバイトにする

SECTION 01

8 個のスイッチ

右から 1、2、4、8。倍々の重さ

8個並んだスイッチの下に、右から小さな重りから大きな重りまで倍々に大きくなる重りが置かれ、高校生がスイッチを押している
体験 01

スイッチを押して、目標の数を作る

各スイッチには「重さ」がある(右から 1、2、4、8、16、32、64、128)。ON にしたスイッチの重さの合計が 10 進数。まず 自分の誕生日の日(1〜31)を作る。次に「お題」を作る

00000000
2 進数(8 ビット)
0
10 進数
00
16 進数
—
この番号の文字(ASCII)
お題: —
教師用メモ

進め方(12分)

  • 「自分の誕生日の日を作る」(3分)。できたら隣の端末と見比べる。「19 日はどう押した?」→ 16 + 2 + 1。
  • 「お題」で 3〜4 問(26、100、255、0)。255 で全部 ON になり、「8 個で 0〜255 の 256 通り」を確認。
  • 投影で「10 進数 → 2 進数」の 2 つのやり方を見せる: 大きい重さから引いていく/2 で割って余りを下から読む。
  • 16 進数の欄は「2 進数が長くて読みにくいから 4 桁ずつまとめる」と説明するだけでよい。文字の欄は節 3 で使う。

指で 2 進数(右手 5 本で 0〜31)を全員でやると盛り上がる。

まとめ 01

2 進法 | 位の重さが 2 倍ずつ、8 ビットで 256 通り

1286432168421→00010011 = 16+2+1 = 19
10 進法 / 2 進法10 進法は 0〜9 の 10 種類で表す。2 進法は 0 と 1 の 2 種類。どちらも「位の重さ」で表す位取り記数法。2 進法の位の重さは 1, 2, 4, 8, … と 2 倍ずつ
変換2 進 → 10 進: ON の位の重さを足す。10 進 → 2 進: 大きい重さから引ける分を引く、または 2 で割った余りを下から並べる
16 進法2 進数が長くて読みにくいので、4 ビットずつまとめて 0〜9, A〜F の 16 種類で表す。1111 が F、11111111 が FF

※ なぜ 2 進法か: 2 段階なら判別しやすく、電気信号にノイズが混じっても「しきい値」より上か下かで復元しやすい

教師用メモ

目標 01。小数・負の数は扱わない(情報Ⅱや発展)。

SECTION 02

何ビット要る

47 通りを表すには、スイッチはいくつ

日本地図の都道府県それぞれに小さな番号札が付いていて、高校生が何個のスイッチで足りるか指で数えている
体験 02

都道府県を 2 進法で表すには、何ビット

47 都道府県に 1 つずつ違う番号を振り、それを 2 進法で表す。全部に違う番号を付けるには、最低何ビット要る? 電球 5 個が 32 通りだったことを思い出す

みんなの答え
教師用メモ

答え 6 ビット(64 通り ≥ 47)。5 ビットでは 32 通りで足りない。「47 ビット」を選ぶ人は「1 つに 1 個のスイッチ」と考えている。それでも表せるが、組み合わせを使うと 6 個で済むのが 2 進法の力。

続けて口頭で: 「クラス 40 人なら?」(6 ビット)「学校 600 人なら?」(10 ビット、1,024 通り)。目標 02 の前半。

まとめ 02

ビットとバイト | 情報の量の単位

1 bit×81 B×1,0241 KB×1,0241 MB×1,0241 GB×1,0241 TB
ビット(bit)2 進法 1 桁。コンピュータが扱う情報の最小単位。n ビットで 2ⁿ 通り。47 通りなら 6 ビット、1,024 通りなら 10 ビット
バイト(byte)8 ビットをまとめたもの。0〜255 の 256 通り。ビットは細かすぎるので、量はバイトで数える
なぜ 1,024本来キロは 1,000 倍。コンピュータは 2 進法が基本なので 2 の 10 乗 = 1,024 を単位に使うことが多い。小さい単位にするなら掛け、大きい単位にするなら割る
教師用メモ

目標 02。「4,096 KB は何 MB?」(4 MB)「何ビット?」(4,096 × 1,024 × 8)を口頭で 1 問ずつ。計算は式まででよい。

SECTION 03

文字も数

A は 65。あ は 3 バイト

文字のカードの裏に番号が書かれていて、高校生がカードをめくって番号を確かめている
体験 03

自分の名前を、バイトにする

名前(ローマ字でも、ひらがなでも)を打つと、コンピュータが実際に保存する 0 と 1 が出る。この画面は自分の端末だけで、どこにも送らない。ローマ字と日本語でバイト数がどう変わるかを見る

文字数
0
バイト数(UTF-8)
0
ビット数
0
1 文字ずつの番号(10 進)と 2 進数
教師用メモ

進め方(10分)

  • まず「A」だけ打つ → 65、01000001。「B」→ 66。「a」→ 97。英数字は 1 文字 1 バイト(ASCII は 7 ビット)。
  • 次に「あ」→ 3 バイト。「なぜ 3 バイト?」→ 世界中の文字に番号を振ると 256 では足りない。日本語は 1 文字に 3 バイト使う(UTF-8)。
  • ローマ字の名前と、ひらがなの名前でバイト数を比べる。同じ「いとう」でも Ito は 3 バイト、いとう は 9 バイト。
  • 文字化け: 番号と文字の対応表(文字コード体系)が送り手と受け手で違うと、別の文字に見える。Shift_JIS と UTF-8。Unicode で起こりにくくなった。

フォントは「番号をどんな形で表示するか」で、文字コードとは別の話。絵文字も番号が振られた文字(emoji は日本生まれ)。目標 03。

まとめ 03

文字コード | 文字に番号を振り、番号を 2 進数で記録する

A→65→01000001→保存・送信→同じ対応表で A に戻す
文字コードコンピュータで扱うために文字に割り当てた番号のパターン。ASCII は英数字・記号を 7 ビットで。日本語を含む世界中の文字は Unicode(UTF-8 では日本語 1 文字 3 バイト)
文字化け送り手と受け手で対応表が違うと、同じ番号が別の文字になる。表示の文字コードを正しいものに切り替えれば直る
フォントその番号の文字をどんな形で表示するか。同じ「あ」でも明朝とゴシックで形が違う。番号(文字コード)と形(フォント)は別
教師用メモ

解説の学習活動例「全角・半角の違いや改行でファイルサイズが変わる」は、ここでファイルサイズの話につなぐと自然。

道具で確かめる

手で計算した答えと、道具の答えを合わせる

自分の出席番号と名字を入れ、手で計算した答えと合うかを確かめる

基数変換10 進法・2 進法・16 進法を行き来する
  1. 「この枚で開く」を押す
  2. 自分の出席番号を 2 進法にする
  3. 手で計算した答えと合うかを確かめる
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
文字のデジタル表現文字が、どんな番号とバイト列で表されているかを見る
  1. 「この枚で開く」を押す
  2. 自分の名字を 1 文字入れる
  3. 何バイトになったかを数える
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る

※ この枚は提出しない。自分の手で確かめて、分かったことをノートに書く

教師用メモ

進め方 提出させない枚。手を動かして確かめるところまで。机間指導で、止まっている生徒だけを見る。

6分。2 つの道具を続けて使う。基数変換は手計算と突き合わせる。

道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。

今日のまとめ

3つの目標に、自分の操作で答える

01
2 進法 位の重さ 1, 2, 4, 8, …。誕生日 19 は 00010011。8 ビットで 0〜255
02
ビット数と単位 47 通りなら 6 ビット。8 ビット = 1 バイト、1,024 倍ごとに KB・MB・GB・TB
03
文字コード A は 65。あ は 3 バイト。対応表が違えば文字化け。形はフォント
自己評価

今日の目標、自分はどこまで

3 つの目標それぞれに、できた/だいたい/まだ、を 1 つ選ぶ。右の帯にクラス全体の分布が出る

今日の目標、自分はどこまで | 1 つずつ選ぶ
012 進法と 10 進法を 8 ビットの範囲で変換できる
02必要なビット数を求め、単位の関係を言える
03文字コードの仕組みと文字化けの理由を説明できる
できただいたいまだ
教師用メモ

1 分。2 進法は「まだ」が出やすい。次回冒頭でスイッチの画面をもう一度開いて 2 問やる。

ふりかえり

今日いちばん「へえ」と思ったこと

一文でよい。今日の 3 つの体験のどれかに触れて書く

みんなのふりかえり
教師用メモ

3 分。次回は音と画像。「文字は番号を振れた。写真はどう番号を振る?」と問いを残す。