コンピュータでのデータ表現(基礎理論)
学習のポイント
コンピュータ内部では、「数値」は「文字コード」で管理され、画像・音声・動画も各種の規格があります。また、整数は、「固定小数点数」、実数は、「浮動小数点数」により管理されています。浮動小数点では「計算誤差」が発生する場合があります。コンピュータ内部での様々なデータ表現の仕組みをマスターしましょう。
1. 文字コード | ||||||||||||||||||||||||||||||||||||||||
文字コードには、色々な種類があります。特徴を押さえましょう。
|
||||||||||||||||||||||||||||||||||||||||
2. マルチメディア | ||||||||||||||||||||||||||||||||||||||||
マルチメディア(画像・音声・動画)の各種規格を押さえましょう。 ●画像 コンピューターなどで画像を表現する場合の一番小さな要素を「画素(ピクセルやドット)」といいます。この「画素」1つ1つが、色や明るさなどの情報を持っています。1つずつの形は正方形や長方形です。それら「画素」がたくさん集まって、絵や写真などを表現しています。 また、「解像度」とは、画像の密度のことです。 その単位が「dpi」で1インチにどれだけ「ピクセル」が含まれているかを表しています。 10dpiでは以下のようになります。
過去問題 200dpiのプリンタを使って画像を加工せずに9×6(㎝)の大きさで印刷したい。この時、ディジタルカメラの解像度を幾つにして撮影すべきか。ここで、1インチ=2.5㎝とする。 解説 (9÷2.5)×(6÷2.5) = 3.6(インチ)×2.4(インチ) よって、200dpiより1インチあたり200ドットですから 200(ドット)×3.6 × 200(ドット)×2.4 = 720(ドット)×480(ドット) ●音声 1. PCM
2. MIDI
過去問題 平成25年春期 問3
|
||||||||||||||||||||||||||||||||||||||||
3. 固定小数点数 | ||||||||||||||||||||||||||||||||||||||||
小数点の位置を通常、右端に固定して、数値を表現します。格納できる数値の範囲は決まってあり、これを超えると「オーバフロー」となります。
(nビットの場合) ●正の数のみ 0~2n-1 ●負の数に1の補数を使用した場合 -2n-1+1 ~ +2n-1-1 ●負の数に2の補数を使用した場合 -2n-1 ~ +2n-1-1 ※この表現方法は、演算速度は遅いが、正確に数値を表現できます。プログラム言語では「整数型」に使用されています。 |
||||||||||||||||||||||||||||||||||||||||
4. 浮動小数点数 | ||||||||||||||||||||||||||||||||||||||||
「浮動小数点」は、指数形式を使用したデータ表現です。 10進数の-1625は、- 0.1625 × 104 となります。 「符号部」「仮数」「底」「指数」で表現しています。 ●有効けた数…意味のある情報が格納されたけたの数を言います。 ●正規化…仮数部が「1」となるようにすることです。(例) 101.1101の時、「1.011101×22」 ●表現形式…IEEE754によって提案。32ビット
「E」指数部の値 「M」仮数部の値 表現される値 (-1)S×2E-127×(1+M) ●指数部 指数の値を2進数で格納します。ただし、負の数の扱えるように+127した値を8ビットの2進数で表現して格納します。 ●仮数部 小数点以下の部分を23ビット分格納します。 例
10進数「5.75」を浮動小数点で表記してみましょう。
|
||||||||||||||||||||||||||||||||||||||||
5. 計算誤差 | ||||||||||||||||||||||||||||||||||||||||
浮動小数点では、計算誤差が発生する場合がありますので、プログラミングする際は、注意が必要です。以下は代表的な計算誤差です。 ●オーバフロー 演算結果の絶対値が大きくなり、表現できる値の範囲を超えてしまうこと。 ●アンダフロー 絶対値が小さくなり、表現できる値の範囲を超えてしまうこと(0の近くは表現できない) ●絶対誤差 真値と計算値(近似値)との差 ●相対誤差 絶対誤差÷真値 ●丸め誤差 限られた範囲内に入りきらない部分を切り捨てたことによる誤差。 ●打切り誤差 計算を途中で打ち切ることによる誤差。 ●けた落ち 絶対値の近い同符号の加減算において有効桁数が減少すること。 ●情報落ち 絶対値の大きい数と小さな数の加減算で、小さな数の情報が計算結果に反映されないこと。回避方法としては、絶対値の小さい数から加減算を行うようにする。 |
||||||||||||||||||||||||||||||||||||||||
6. 2進化10進数 | ||||||||||||||||||||||||||||||||||||||||
「2進化10進コード(BCD)」とは、「10進数の1桁を2進数4桁」で表現すること。以下のように2種類があります。 ●ゾーン10進数 1バイトが「ゾーン部」と「数値部」から構成されて、最後の1バイトが「符号部(4ビット)」と「数値部(4ビット)」からなります。つまり、10進数の1桁が1バイトで格納されます。 n桁の整数をゾーン10進数で表現すると「nバイト」が必要です。 ●パック10進数 4ビツトで数値部を構成して、最後の4ビットが符号部となります。 n桁の整数をパック10進数で表現すると「n/2+1バイト」が必要です。 ※符号部は、正の数は「(1100)2=(C)16」、負の数は「(1101)2=(D)16」です。 |