今日は、「文字のデジタル表現」というテーマで学びましょう。アルファベットから漢字まで、私たちが日常で使っている文字がどのようにデジタルデータとして表現され、そしてそれがなぜ大切なのか、その背景までを理解していきましょう。
黒板
![文字のデジタル表現](https://joho-terakoya.com/wp-content/uploads/2023/06/a696c9859391dafa55613beeb4d0df7c-546x1024.png)
授業
文字コードとは
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
今日は「文字のデジタル表現」について学ぶぞ。例えば、アルファベットや漢字はどうやってデジタルデータで表現するか知ってるかな?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
えーと、前回情報のデジタル表現で勉強した、2進法とか16進法を使うんじゃないんですか?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
その通りだ。特定の文字を表現するためには、文字コードというものが使われているんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
文字コード…それって何ですか?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
文字コードは、文字を数字で表現するための規則のことを指すんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
規則??余計わからなくなってきた。
ASCIIコード
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
例えば、ASCIIという1バイトのコードを使うと、アルファベットの「A」は「41」という16進数で表現されるんだ。最後にASCII表を載せるから参考にしてみてね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
なるほど。Aという文字は、41コードで表せるんだね。じゃあ、Bは42だね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
その通り
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
なるほど。この表で変換できるのか。なんか暗号を解読しているみたいで楽しいね。
シフトJISコード
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
じゃあ、情報の「情」という漢字はどうなるんですか?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
それが、ASCIIコードでは「情」のような漢字は表現できないんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/cb0d259219ea5886bfa3891c468ff2a0-1.png)
なんでASCIIコードでは表現できないの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
それはASCIIコードは英語圏で使う文字を表現するために作られた文字コードだからなんだ。英語圏で使う文字はアルファベットと数字を合わせても256個に満たないので、1バイトコードのASCIIコードで十分。でも、漢字は常用漢字だけでも2136文字もあるから、1バイトでは足りないんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
じゃあどうやってコンピューターで扱うの?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
日本語の文字を扱うために作られた文字コード、例えばシフトJISという文字コードを使ったりするよ。「情」という漢字は、シフトJISとコードで16進法であらわすと「8EFF」という2バイトの値となる。
Unicode
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほど、シフトJISというのは漢字を扱うために作られた文字コードなんだね。でもそうすると、世界中文字に合わせた文字コードができてしまって、複雑だね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
その通り。そこで登場したのが、Unicodeという文字コードだよ。Unicodeにはいくつかの方式があって、その一つがUTF-8だ。UTF-8を使うと世界中の文字を統一的に表せるんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
それはすごい!これで解決だね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
うん。Unicodeが使われている、Webサイトなら、世界のどこの国の文字でも文字化けせずに読むことができるよね。
文字化けの原因
![](https://joho-terakoya.com/wp-content/uploads/2023/04/16371f1b819fa772e8628c93a9bbf46d-1.png)
なんで文字化けって起きるんですか?
![](https://joho-terakoya.com/wp-content/uploads/2023/04/5c35f2fcb010e2b86465f814066bfef1-1.png)
それは文字コードの違いが原因だね。例えば、シフトJISで書かれた文書をUTF-8で読もうとすると、文字化けが起きる可能性があるんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/9133b16db1f00be3a05953573f3dbe28-1.png)
なるほど、それで前に友だちから送られてきたメールがアラビア文字のようなものになっていたんだ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/f2162247d6ded898b96b3d93e752f8e5-1.png)
そう、その可能性が高いね。友達がシフトJISで書かれたメールを送ったのに、君がそのメールをUTF-8で読んだ結果、文字化けが起こったんだろう。これが「文字のデジタル表現」の重要性だよ。互換性のない文字コードを混在させると、予想外の結果を生じることがあるからね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/788ba1b9cd590f0d71a03527896754c9-1.png)
なるほど、だから、全世界でUTF-8を使うようにすれば、そういう問題も解決できるんですね。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/b75d9d9a6c534b3d25243ac19bc0499d-1.png)
その通りだね。ただ、実際には過去に作られたデータやソフトウェアの互換性を考慮すると、一部で旧来の文字コードが使われ続けることもあるよ。だから、異なる文字コードを理解して、適切に扱う能力も重要なんだよ。
![](https://joho-terakoya.com/wp-content/uploads/2023/04/63cef23d2e450e29361ffd9d51963edf-1.png)
色々と複雑ですね。でも、この話を聞いて、情報のデジタル表現がどれだけ重要かがよくわかりました。ありがとうございました。
10進 | 16進 | 文字 | 10進 | 16進 | 文字 |
---|---|---|---|---|---|
32 | 20 | 64 | 40 | @ | |
33 | 21 | ! | 65 | 41 | A |
34 | 22 | “ | 66 | 42 | B |
35 | 23 | # | 67 | 43 | C |
36 | 24 | $ | 68 | 44 | D |
37 | 25 | % | 69 | 45 | E |
38 | 26 | & | 70 | 46 | F |
39 | 27 | ‘ | 71 | 47 | G |
40 | 28 | ( | 72 | 48 | H |
41 | 29 | ) | 73 | 49 | I |
42 | 2A | * | 74 | 4A | J |
43 | 2B | + | 75 | 4B | K |
44 | 2C | , | 76 | 4C | L |
45 | 2D | – | 77 | 4D | M |
46 | 2E | . | 78 | 4E | N |
ASCIIコード表(一部抜粋)
まとめ
- 文字コードの概念
文字コードとは、特定の文字をデジタルデータで表現するための規則である。 - ASCIIコード
アルファベットや数字などを表現する際に使われる。各文字は1バイトで表現される。 - シフトJISコード
日本の漢字を含む文字を表現する際に使われる。大部分の文字が2バイトで表現される。 - Unicode
世界中のあらゆる文字を表現可能。1文字を表現するために1から4バイトを使う。使用するバイト数は表現する文字によって変わる。Unicodeにはいくつかの方式があり、代表的な方式がUTF-8。 - 文字化けの原因
異なる文字コードで書かれた文書を読むとき、文字化けが起こる可能性がある。
名言解説
“You get used to it, though. Your brain does the translating. I don’t even see the code. All I see is blonde, brunette, redhead.” Cypher in Matrix
今日は1999年に公開された映画「マトリクス」から一節を紹介します。主要キャラクター、サイファーが、「でも、慣れるんだよ。脳が翻訳をしてくれるからさ。僕はもうコードなんか見てない。見えるのは金髪、黒髪、赤髪だけだよ。」と語っています。
この映画は仮想世界”マトリクス”と現実世界を行き来する登場人物たちの戦いを描いています。ここでサイファーが言及している”コード”とは、このマトリクスの基盤をなすデジタル情報のことです。しかし、彼にとってはそれらはもうただの符号ではなく、現実世界の人々や物事を表す「金髪、黒髪、赤髪」になっています。
このセリフは、情報のデジタル表現について考えるきっかけを提供してくれます。皆さんが学ぶ文字コードや画像のピクセル、音のサンプリングなども、見た目はただの数字や記号ですが、それらを解釈することで、文章、画像、音楽といった私たちの身の回りの情報へと変換されます。
デジタル表現の背後にある「現実」を理解することで、皆さんも新たな視点から情報を見る力を身につけることができます。これからの授業で学ぶ内容を、現実世界へとつなげる一助となることを願っています。
問題
「クイズをスタート」のボタンをクリックすると、5問出題します。さあチャレンジ!
編集者ひとこと
今回の名言は、映画マトリクスから引用しました。文字コードが上から2進法と、16進法による表現、うまく伝わりましたのでしょうか?マトリックス・コードとよばれる、緑色で雨が降るような動きで表示される文字コードを知っているかな?今回の授業とは直接関係はないけれど、大好きな作品なので名言に選んでしまいました。SFの世界と甘く見てはいけません、未来を生きる皆さんが、倫理と哲学を学ぶには最高の作品です。まだ見たことのない人は、是非見てくださいね。
さて、次回は「音のデジタル表現」です。お楽しみに。
<RANKING>
高校教育ランキング