第6回入門ゼミナール補足資料

6章

6.1 コンピュータで扱えるデータ

コンピュータは発明されてから長い間文字データしか表示できなかった. 画像や音声を出力できる時代になって,文字データに加えて扱えるようになった データをマルチメディアデータと呼ぶようになった.

6.2 文字の表現

コンピュータの記憶素子1個には 2 通りのデータしか区別できない. 例えば電圧が0V のとき「0」, 5Vのとき「1」として区別し, この単位を bit(ビット)とよぶ. 複雑なデータを区別するには記憶素子を複数使う. 例えば記憶素子2個を左右に並べて置いたと考えると,

の4通りの状態が区別できる. 素子を増やすことで 表 6.1 のように区別することができる数を 増やすことができる.

表 6.1 素子の個数と区別できる数
effect of number of bits

実際のコンピュータで使われている方式について説明する.コンピュータは欧米で 開発されたものなので最初はアルファベットを 0 と1 の組み合わせで 表現しようとした.アルファベットは 26 文字だが大文字小文字を区別すると 52文字,さらに「?」や「.」などの特殊記号も必要になるので $2^7=128$ 種類の文字を区別できる個数として 7bit で英語1文字を表す方式が使われている. 現在最も使われているのは ASCII コードど呼ばれるもので, 表 6.2 のように規定されている.

表 6.2 ASCIIコード表
ASCII code table

コンピュータはほとんど8ビット単位でデータを扱う. ASCIIコードは7bitなので全ての文字で最上位ビットが 0 になっている ことに注意する.日本で規定された半角カナなどは最上位ビット が1のコードに割り当てられている.

6.3 計算対象になる数値の表現

p.66 欄外に2進数では小数点計算で誤差が出る可能性があるので 10進数で計算するときがある,と書いてあるが,10進でも誤差は出る. 例えば1/3は10進の有限小数では正確に表せないが 3進なら表せる.

教科書p.67の「符合」は「符号」の誤り.

b-2 の負の整数の2の補数表現は重要である. 負の数を考えるときは全体で何ビットで数を表すのかという前提を 意識することが重要である.

2の補数の求め方が書かれているが,求め方よりも図 6.1, 6.2 で2の 補数表現の本質を理解してほしい.

Unsigned int
図 6.1 4ビットで非負整数のみ表す場合

Two's complement representation
図 6.2 4ビットで負の数を2の補数表現で表す場合

図6.1は4ビットで0以上の整数だけを扱う場合の表現である.これが2進表現の 基本になる.一番下の0000が10進の0に相当し,下から1加えると 一つ上の数になる.筆算で最下位に1を足してゆくことを考えると 桁上がりしながらビットパターンが変化してゆく規則性が理解できる. この場合,数値は0から15までの16通りを表現できる. 計算機はこの表現の2進数の加減算ができる演算装置を持っている.

では,一番上の 1111 にさらに 1 を足すとどうなるのだろうか. 筆算では 10000 となるが,5桁目は無いので捨てられ,下位4ビットのみ が残って 0000,つまり一番下にループするようになっている. これをオーバーフローという (実際のコンピュータではそのときにキャリーフラグが設定され, オーバーフローが起こったことがわかるようになっている).

この仕組みをうまく使うのが2の補数表現である.1111 に 1 を加えれば 0 になるのだから 1111 を -1 の表現とする, さらに下の 1110 は 2 を加えれば 0 になるのでこれを -2 の表現とする, というのが 2 の補数表現の本質である.

2の補数表現にするには図 6.1の上半分(最上位ビットが1の部分)を切り取って そのまま 0000 の下に接続すれば良い.それが図 6.2 である. -1 の表現である 1111 に 1 を足すとちょうど0になり,他の負の数も 同じ絶対値の正の数を加えると 0 になることがわかる.この工夫により 負の数の加算を加算器の変更なしに行えるのである.

6.4 画像,音声の表現

磁気テープやビニールレコードと違い,コンピュータはアナログデータを そのまま記録できない.何らかの方法でデジタル化する必要がある.

画面は自由に色を変えられる点である画素の集まりで表現される. 画素は将棋盤のマスのように縦横に整列して設置されている. 例えばコンピュータの画面解像度が2560x1600であれば, 横方向に2560個の色が変えられる点(画素)が一行に並んでおり,それが 縦に1600行敷き詰められている(教科書p.69図6.4). この場合,縦横を乗じた4096,000個の 画素が画面にあることになる.それぞれの画素では 光の3原色R(赤)G(緑)B(青)の組み合わせで 任意の色が表現される.現在は R,G,B それぞれに 8 ビット使用することで 約16百万色表現するのが一般的である.

音声データは(画像も)サンプリングして量子化した時点で デジタルデータになる.

画像,音声や,動画のマルチメディアデータは一般に文字データよりも データ量が莫大になる(このため昔はコンピュータで扱えなかった). 圧縮してデータサイズを小さくして保存し,使用するときに 伸長して使うことが多い.

6.5 ファイル形式

教科書p.71 の4 行目「PDFファイルは修正することができません」 は誤り.適当なアプリケーションソフトウェアを使って 修正することができる.

オリジナルのデータサイズに対するデータ圧縮を行った後のデータサイズの 比率を圧縮率という. 可逆圧縮は品質を最優先する場合に使われる 圧縮で,伸長したときにもとのデータと同一のものに 復元できる保証があるものである.圧縮率は一般に良くない. 非可逆圧縮は圧縮率を良くする (データサイズを小さくする)ことを 優先する場合に使われる圧縮で,伸長後にもとのデータにもどらない 性質があるため,いくらか劣化したデータになる. 動画などは多少劣化してもそれほど目立たないので高い圧縮率 の非可逆圧縮を行うことが多い.


Updated in June 12, 2020, Yamamoto Hirosh