◎ミニ講習(九曜):コンピュータにでてくる数字と仕組みについて
以前に記憶装置のハードディスクとかフラッシュメモリの話をしましたが、その時に、USBメモリの容量が1GBとか2GBという数字がでてきましたが、1ぎがとか2ギガはどんな数字かという質問がありましたので、今日はそれらの数字などについてと コンピュータの仕組みについて 話ます。
0.はじめに
メモリの容量を「1Gb(ギガバイト)」、「2Gb」といったり、ファイルのサイズを「10Kb(キロバイト)」といったりします。この数字はいったいなにを意味するのかを説明します。
1. コンピュータの仕組み
1.1 2進数
我々が普段使っている数字は0から9までの10個の数字を使い、10で桁上がりします。このような数字を「10進数」と呼びます。
それに対して、コンピュータが理解できる数字は0と1の二通りしかありません。
0:電気が切れている
1:電気が付いている
このような漢字です。
0と1だけでは二通りの表現しかできませんが、この0と1だけで表現する数字のことを「2進数」といいます。
1.2 ビット
0と1のことを「ビット」といいます。ビット一桁を「1ビット」、二桁を「2ビット」と表現します。ビットは「コンピュータにおける最小単位」と呼ばれています。
0と1で一桁では二通り。
これを2つ合わせた2ビットでは4通りの表現が可能です。
3ビットでは8通り、
4ビットでは16通りの表現が可能です。
1.3 バイト
このビットを8個、つまり8ビット集まった単位を「1バイト」といいます。1バイト、つまり8ビットでは、256通りの表現が可能です。
1バイトは「コンピュータにおける基本単位」と呼ばれています。
「メモリが1ギガバイト」などという場合の「バイト」は、この「バイト」のことです。
1.4 全角文字と半角文字
1バイトでは256通りの表現が可能です。アメリカなど英語を母国語としている国では1バイトで全ての文字が表現できます。アルファベットの大文字、小文字、数字、記号など、全て含めても、256あれば足りるからです。
ところが日本語には「漢字」というものがあります。漢字は何千とあるので、1バイトの256通りではとても表現できません。そこで、コンピュータで日本語を扱えようにするために、1バイトの2倍、つまり2バイトを使って表現する方法が使われています。
1バイトは8ビットなので、2バイトはその2倍の16ビットです。2^16=65536通りの表現ができます。これだけあれば漢字を含めた日本語を表現するのに十分です。
1バイトの文字を「半角」、2バイトの文字を「全角」といいます。
1.5 単位
さて、1バイトの1000倍、1000バイトを「1キロバイト(1Kb)」といいます。1000メートルを1キロメートルというのと同じと考えればいいでしょう。
キロバイトの1000倍を「メガバイト(Mb)」。
メガバイトの1000倍を「ギガバイト(Gb)」。
ギガバイトの1000倍を「テラバイト(Tb)」。
といいます。
2. コンピュータの不思議
2.1 騙された!!
パソコンショップで新品の120Gbのハードディスクを買って着て、マイ コンピュータで両利きを見てみると、110Gbぐらいしかありませんでした。「あっ、騙された!!」
これは、単位の暗い上がりを「1000」と計算するか「1024」で計算するかの違いで生じるものです。
コンピュータは2進数で動いているため、暗い上がりは1000ではなく、正確には2^10=1024となるのです。
2.2 意味不明の文字が表示される
これまで説明してきましたように、コンピュータは、文字や画像音声など全てのデータを「数値」として管理しています。例えば文字をコンピュータで表すときのことを考えてみましょう。
コンピュータでは、1つ1つの文字に番号が割り当てられています。これを「文字コード」といいます。
日本語の文字コードには、よく使われているものだけでも4種類もあるのです。時々ホームページを見ていて意味不明の文字が表示されることがあります。例えば「こんにちは」と書いてあるはずなのに」、ウ、\x{fffd}、ヒ、チ、マ「などとわけの分からない文字が出るのです。このような現象のことを「文字化け」といいます。この文字化けが起こることがある原因は、「文字コード」の判定を誤ることがあるためなのです。
●質疑応答
Q1
日本語の文字には4種類あるといわれました。シフトジスとかISOとか聞いたことがあります。
A1
日本語の文字コードについて説明します。
世の中には両手の指では足りないくらい多くの漢字コード規格が存在しています。インターネットでよく用いられるものだけでもShift-JIS、JIS(ISO-2022-JP)、EUC-JP、UTF-8(Unicode)の4種類があります。
「Shift-JIS(シフトジス)」はWindowsで使用されています。Windows付属のメモ帳で日本語の文章を書いてテキストファイルで保存するとShift-JIS形式のファイルができあがります。
「JIS(ジス)、(ISO-2022-JP)」はその名の通りJIS(日本工業規格)によって定められた文字コードです。インターネットのメールでよく使用されています。ISO(国際標準化機構)の規格「ISO-2022」の中に組み込まれているので、「ISO-2022-JP」と呼ばれることもあります。
「EUC-JP(イーユーシー・ジェーピー)」はUNIXというOSで使用されます。半角文字を定めたASCIIコードとバッティングしないコード体系のため、Webプログラマーが好んで使用することが多いようです。そのためこの形式で記述されたホームページをよく見かけます。身近な例では、国内最大手のソーシャル・ネットワーキング・サービス(SNS)である「mixi(ミクシィ)」や、こちらも国内最大手のショッピングモール「楽天市場」などがこのEUC-JPを採用しています。
「Unicode(ユニコード)」はISOで標準化された文字コードで、全ての文字を多バイトで表現し、同じコード体系で多国語の処理を可能にしようとしたものです。これに基づいて日本語の規格を定めたのが「UTF-8」です。
Q2
点字の考え方と似てますね。点が出ているかどうかで63通りの表現ができます。
A2
そうですね。6点は「6ビット」、8点は「8ビット」といえるかもしれませんね。
以上です