体系学習
2進数・デジタル化・文字コードから情報表現を理解する
2進数、bit/byte、A/D変換、文字コードを基礎から整理し、FEでは補数、浮動小数点、数値誤差、ハフマン符号、誤り検出訂正まで深掘りする。
対象資格:ITパスポート / 基本情報技術者試験
目安時間:35分
このページで理解できること
- 2進数・10進数・16進数の基本的な関係を説明できる
- bitとbyte、表現可能な状態数の関係を説明できる
- 標本化・量子化・符号化を順序と役割で区別できる
- 文字コードが文字を数値として表現する規則だと説明できる
- FEでは2の補数、固定小数点・浮動小数点を区別できる
- FEでは丸め誤差・桁落ち・情報落ちなどを原因から区別できる
- FEでは情報源符号化と通信路符号化、ハフマン符号の目的を説明できる
ITパスポート:2進数の表現と基数変換、bit/byte、標本化・量子化・符号化、代表的な文字コードを理解し、基本的な情報表現を判断できる状態を目標にする。
コンピュータ内部では、数値も文字も音声も最終的には有限個のbitで表します。ITパスポートでは2進数、情報量、A/D変換、文字コードの基本を押さえ、FEでは『有限bitで表すためにどんな誤差や工夫が生じるか』まで広げます。
まずは情報がコンピュータ内部へ入る流れ
数値・文字・音声なども、最終的にはビット列として表現されます。
値を2進数で表す
コンピュータ内部では0と1を基本に数値や状態を表現します。
必要な情報量を考える
bitやbyte、接頭語を使ってデータ量を表します。
アナログ量を標本化する
連続した信号から一定間隔で値を取り出します。
値を量子化する
取り出した値を有限個の段階へ丸めます。
符号化する
量子化した値や文字などをビット列として表します。
用途に応じて圧縮・誤り対策を行う
FEでは情報源符号化や通信路符号化まで関連付けます。
1. 2進数は各桁が2の累乗を表す
基数変換は、各桁の重みを理解すると安定します。
10進数では各桁が10の累乗、2進数では各桁が2の累乗を表します。例えば2進数1101は、8+4+0+1=13なので10進数13です。
10進整数を2進数へ変換するときは、2で割った余りを下から読む方法や、2の累乗の和へ分解する方法が使えます。
8進数は3bit、16進数は4bitと対応させやすいため、長い2進数を短く表現するのに便利です。例えば2進数1111は16進数Fです。
基数変換では、変換後も値そのものは変わりません。表し方だけが変わります。
| 10進 | 2進 | 16進 |
|---|---|---|
| 10 | 1010 | A |
| 13 | 1101 | D |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
2. bitとbyteは情報量の基本単位
1byte=8bitを起点に、データ量を読みます。
bitは0または1の二つの状態を表す最小単位です。n bitあれば、組合せとして2ⁿ通りの状態を表せます。
1byteは8bitです。例えば1byteなら256通りのビットパターンを表現できます。
k、M、G、Tなどの接頭語は大きな量を表すために使われます。問題では10進系か2進系か、単位の定義が与えられている場合はその条件に従います。
厳密に2の累乗を示す単位としてKiB、MiBなどの二進接頭語が使われる場合もあります。試験では問題文の定義を確認して計算します。
3. A/D変換は標本化→量子化→符号化で考える
連続量をそのままビット列へ変えるのではありません。
アナログ信号は時間や値が連続的に変化します。デジタル化では、まず一定間隔で信号値を取り出す標本化を行います。
次に、取り出した値を有限個の段階へ対応付ける量子化を行います。量子化の段階数が有限なので、元の値との差で量子化誤差が生じます。
最後に、量子化した値を0と1の組合せとして表す符号化を行います。
音声や画像では、標本化頻度や量子化bit数を増やすと一般に再現できる情報は増えますが、その分データ量も増えます。
| 段階 | 何をするか |
|---|---|
| 標本化 | 連続した信号から一定間隔で値を取り出す |
| 量子化 | 値を有限個の段階へ対応付ける |
| 符号化 | 値をビット列として表す |
4. 文字も数値コードへ対応付けて表す
文字そのものを直接保存するのではなく、コードとして表現します。
コンピュータでは文字を数値へ対応付け、その数値をビット列として保存・送信します。この対応規則が文字コードです。
ASCIIは英数字や記号などを扱う代表的な文字コードです。Unicodeは世界中の多様な文字を共通のコード体系で扱うことを目指した規格です。
UnicodeとUTF-8などの符号化方式は同じ言葉として扱わないことが重要です。Unicodeは文字にコードポイントを割り当てる体系で、UTF-8はそれをbyte列へ符号化する代表的な方式の一つです。
異なる文字コードとして解釈すると、意図した文字と異なる表示になる文字化けが起こることがあります。
ITパスポートではここまでを確実に
- 2進数の各桁が2の累乗を表すことを説明できる
- 簡単な2進数・10進数・16進数の基数変換ができる
- 1byte=8bit、n bitで2ⁿ通りの状態を表せることを理解している
- 標本化・量子化・符号化の順序と役割を区別できる
- bit数や標本化頻度を増やすとデータ量も増えることを理解している
- 文字が文字コードによって数値として表現されることを理解している
- JIS系文字コードやUnicodeが代表例であることを認識している
最後に「何をbit列へ変換しているか」を確認する
- 2進数は2の累乗の組合せで値を表す
- bit・byteは情報量の基本単位として使う
- アナログ信号は標本化→量子化→符号化でデジタル化する
- 文字は文字コードによって数値へ対応付ける
- FEでは補数・浮動小数点・数値誤差まで扱う
- 情報源符号化は効率化、通信路符号化は誤り対策を主目的とする
数値・文字・音声は別々のテーマに見えますが、最終的に『有限個のbitでどう表現するか』という共通点でつながっています。