体系学習
2進数・デジタル化・文字コードから情報表現を理解する
2進数、bit/byte、A/D変換、文字コードを基礎から整理し、FEでは補数、浮動小数点、数値誤差、ハフマン符号、誤り検出訂正まで深掘りする。
対象資格:ITパスポート / 基本情報技術者試験
目安時間:35分
このページで理解できること
- 2進数・10進数・16進数の基本的な関係を説明できる
- bitとbyte、表現可能な状態数の関係を説明できる
- 標本化・量子化・符号化を順序と役割で区別できる
- 文字コードが文字を数値として表現する規則だと説明できる
- FEでは2の補数、固定小数点・浮動小数点を区別できる
- FEでは丸め誤差・桁落ち・情報落ちなどを原因から区別できる
- FEでは情報源符号化と通信路符号化、ハフマン符号の目的を説明できる
ITパスポート:2進数の表現と基数変換、bit/byte、標本化・量子化・符号化、代表的な文字コードを理解し、基本的な情報表現を判断できる状態を目標にする。
基本情報技術者試験:ITパスポート範囲に加え、補数、固定/浮動小数点、算術精度と誤差、標本化定理、情報源符号化・通信路符号化、ハフマン符号を理解する。
コンピュータ内部では、数値も文字も音声も最終的には有限個の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が代表例であることを認識している
FE深掘り
5. FEでは負数・補数・固定小数点・浮動小数点を扱う
同じbit列でも、数値表現方式によって意味が変わります。
負の整数を2進数で表す代表的な方式が2の補数表現です。n bitの2の補数では、表現範囲は -2^(n-1) から 2^(n-1)-1 になります。
2の補数で負数を作る基本的な方法は、正の値の全bitを反転して1を加えることです。例えば8bitの+5は00000101なので、-5は11111011です。
固定小数点数は小数点位置をあらかじめ固定して値を表します。扱える範囲と精度の設計が分かりやすい一方、非常に大きな値と非常に小さな値を同じ形式で広く扱うには不向きです。
浮動小数点数は、符号、仮数部、有効数字部分、指数部などを用いて広い範囲の値を表します。単精度・倍精度などが代表用語です。有限bitで表すため、多くの実数を完全には表現できません。
| 10進数 | 8bit表現 |
|---|---|
| +5 | 00000101 |
| -5 | 11111011 |
| 最大値 | 01111111 = +127 |
| 最小値 | 10000000 = -128 |
FE深掘り
6. FEでは数値計算の誤差を原因から区別する
有限桁で計算するため、表現や演算に特有の誤差が生じます。
丸め誤差は、表現できる桁数に合わせて値を丸めることで生じる誤差です。有限bitの浮動小数点では、多くの10進小数を厳密に表せません。
打切り誤差は、無限級数や反復計算などを有限のところで打ち切ったり、近似式を用いたりすることで生じます。
桁落ちは、ほぼ等しい大きな数同士を減算したとき、有効な上位桁が相殺され、残った値の有効数字が少なくなる現象です。
情報落ちは、大きさが極端に異なる数を加減したとき、小さい方の情報が有限桁の表現に吸収されて結果へ反映されにくくなる現象です。
表現可能範囲を超えるとオーバーフロー、絶対値が小さすぎて表現可能な範囲を下回るとアンダーフローが起こります。
| 現象 | 主な原因 |
|---|---|
| 丸め誤差 | 有限桁へ丸める |
| 打切り誤差 | 計算を有限回で打ち切る・近似する |
| 桁落ち | 近い大きな数の減算で有効桁が失われる |
| 情報落ち | 大きさが極端に違う数の演算で小さい値が失われる |
| オーバーフロー | 表現可能な最大範囲を超える |
| アンダーフロー | 絶対値が小さすぎ表現可能範囲を下回る |
FE深掘り
7. FEでは標本化周波数と再現可能な周波数の関係も見る
十分な頻度で標本化しないと、元信号と異なる周波数に見えることがあります。
標本化定理では、理想的な帯域制限信号を再現するためには、最高周波数成分の2倍より高い標本化周波数で標本化する必要があると考えます。
標本化周波数が不足すると、高い周波数成分が別の低い周波数として現れるエイリアシングが起こることがあります。
標本化周波数を上げれば時間方向の情報を細かく取得できますが、保存・伝送するデータ量も増えます。量子化bit数を増やす場合も同様にデータ量が増えます。
FE深掘り
8. FEでは情報源符号化と通信路符号化を区別する
圧縮したいのか、伝送誤りに備えたいのかで目的が違います。
情報源符号化は、情報を効率よく表現してデータ量を減らすことを主な目的とします。ハフマン符号は、出現頻度の高い記号へ短い符号を割り当てる代表的な可変長符号です。
ハフマン符号では、ある符号語が別の符号語の先頭部分にならない接頭語条件を満たすように構成でき、符号列を一意に復号できます。
通信路符号化は、伝送時の誤りを検出・訂正しやすくするために冗長情報を付加する考え方です。圧縮とは逆にデータ量が増える場合があります。
単純なパリティは代表的な誤り検出方法で、標準的なハミング符号は一定条件下で1bit誤りを訂正できます。目的と能力を混同しないようにします。
| 分類 | 主目的 | 代表例 |
|---|---|---|
| 情報源符号化 | データを効率よく表現・圧縮する | ハフマン符号 |
| 通信路符号化 | 伝送誤りを検出・訂正しやすくする | パリティ、ハミング符号など |
基本情報ではここまでつなげる
- n bitの2の補数表現範囲を説明できる
- 正数から2の補数表現の負数を作れる
- 固定小数点と浮動小数点の特徴を区別できる
- 丸め誤差・打切り誤差・桁落ち・情報落ちを区別できる
- オーバーフローとアンダーフローを説明できる
- 標本化周波数と元信号の最高周波数の基本関係を説明できる
- 情報源符号化と通信路符号化の目的を区別できる
- ハフマン符号が出現頻度に応じた可変長符号であることを説明できる
最後に「何をbit列へ変換しているか」を確認する
- 2進数は2の累乗の組合せで値を表す
- bit・byteは情報量の基本単位として使う
- アナログ信号は標本化→量子化→符号化でデジタル化する
- 文字は文字コードによって数値へ対応付ける
- FEでは補数・浮動小数点・数値誤差まで扱う
- 情報源符号化は効率化、通信路符号化は誤り対策を主目的とする
数値・文字・音声は別々のテーマに見えますが、最終的に『有限個のbitでどう表現するか』という共通点でつながっています。