コンピュータの数の世界 — 2進数・16進数・文字コード
導入
コンピュータは「0と1しかわからない」とよく言われます。しかし、その0と1だけで文章も画像も音楽も表現できるのはなぜでしょう。電気のオンとオフが生み出す数の世界をのぞいてみましょう。
なぜ重要か
2進数と16進数はITパスポートのテクノロジ系分野の基礎中の基礎であり、「2進数から10進数への変換」「16進数の読み方」は毎年のように出題されています。計算問題として登場することも多く、暗記だけでは対応できない単元のひとつです。
また、文字コード(ASCII・UTF-8)はWebやメール、ファイルの文字化けといった実際の現象とも直結しており、実務でも意味を理解して活用できる知識です。プログラミングを学ぶ際にも2進数・16進数の理解は不可欠で、この単元を押さえることがIT全般の理解を深める土台になります。
くわしく知ろう
コンピュータの回路は電気が流れている(オン)か流れていない(オフ)かの2状態しか区別できません。この2状態を「1」と「0」に対応させたのが2進数(binary)です。私たちが普段使う10進数は0〜9の10種類の数字を使いますが、2進数は0と1の2種類だけで数を表します。
2進数では桁が上がるたびに値が2倍になります。たとえば2進数の「1010」は、右から順に0×1+1×2+0×4+1×8=10(十進数)を意味します。コンピュータ内部では全ての計算をこの方式で行っています。
16進数(hexadecimal)は2進数を扱いやすくするために使われます。4ビット(2進数4桁)をまとめて0〜9とA〜Fの16種類の文字で表せるため、長い2進数を短く書けます。メモリアドレスやカラーコード(#FF5733など)の表記に広く使われています。
文字をコンピュータで扱うには、文字と数値を対応させる「文字コード」が必要です。ASCIIは英数字・記号を7ビットで表す規格で、大文字「A」は65(10進数)に対応しています。日本語を含む多言語を統一的に扱うために生まれたのがUnicodeで、その主要なエンコーディング方式がUTF-8です。現在のWebページの大半はUTF-8を採用しており、文字化けの原因の多くは異なる文字コード間の変換ミスによるものです。
具体例で理解する
たとえばWebページの文字色を指定する「#FF0000」は赤を意味する16進数表記で、RGBそれぞれが0〜255(16進数でFF)の値を持ちます。また「A」という文字をコンピュータが保存するとき、ASCIIでは65(2進数:01000001)として扱われています。日本語ページでの文字化けは、UTF-8で作成したページをShift-JISで開いたときのように、異なる文字コード同士が混在した際に起こります。
試験での出題パターン
【パターン1:2進数と10進数の相互変換問題】
「2進数の1101を10進数に変換するといくらか」という計算問題が頻出です。右の桁から順に2⁰・2¹・2²・2³(1・2・4・8)の重みを掛けて合計するという変換手順を確実に身につけておきましょう。逆方向(10進数→2進数)も出題されることがあり、2で繰り返し割り算して余りを並べる方法を練習しておくと安心です。
【パターン2:文字コードの特徴を問う問題】
「多言語を統一的に扱うための文字コードはどれか」「ASCIIとUTF-8の違いとして正しいものはどれか」という形式で、各文字コードの特徴の違いを問う問題が出題されます。ASCIIは英数字・記号のみ7ビット、Unicodeは世界中の文字を統一管理、UTF-8はUnicodeのエンコーディング方式という階層関係を整理しておくと答えやすくなります。
よくある間違い・紛らわしいポイント
【2進数の桁の重みを右からではなく左から数えてしまう】
2進数「1010」を変換するとき、左から「1×1+0×2+1×4+0×8=5」と誤る場合があります。正しくは右から2⁰・2¹・2²・2³の重みを割り当てるため、1010は「0×1+1×2+0×4+1×8=10」です。「最も右の桁が2の0乗(=1)」という出発点を意識することが計算ミスを防ぐコツです。
【16進数のA〜Fの対応値を忘れる】
A=10、B=11、C=12、D=13、E=14、F=15という対応をうっかり混乱することがあります。「10進数10から始まってFで15になる」とセットで覚えておくと確実です。カラーコード「#FF」は255(16×15+15)になることも確認しておきましょう。
【ASCIIとUnicodeの範囲の違い】
ASCIIは英数字・記号のみを扱い、日本語(ひらがな・漢字)には対応していません。Unicodeは世界中の文字を統一管理する規格で、UTF-8はその代表的なエンコーディング方式です。「ASCII=英語のみ・7ビット」「UTF-8=多言語対応」という対比で覚えておくと区別しやすくなります。
まとめ・試験ポイント
- 2進数=0と1で表す数。コンピュータの電気ON/OFFに対応、桁の重みは右から2⁰・2¹・2²…
- 16進数=4ビットをまとめて0〜9・A〜Fで表す省略表記(A=10、F=15)
- ASCII=英数字・記号を7ビットで表す文字コード(A=65)
- UTF-8=Unicodeのエンコーディング方式。日本語など多言語に対応
- 文字化け=異なる文字コード間の変換ミスが原因
- 試験では2進数↔10進数の変換計算と文字コードの特徴を問う問題が頻出
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する