第2章 情報の表現 コンピュータの世界において, どんな情報でも,例えば,数値,文 字,音声,画像など,すべて2進数 で表現されている. この章では,10進数,2進数,8進数と16進数および 各進数間の変換方法,また,コンピュータのデータとし て,数値,文字,音声,画像の表現方法について学ぶ. 1 コンピュータとネットワーク概論 第2章 情報の表現 2.1 10進数と2進数,8進数,16進数の記数法 324個のものを10進数で表すことを考えると,下 図のように100(102)位に3個をおき,10(101)位に2 個をおき,1(100)位に4個をおけば,324個のもの が表現できる. 100(102)位 10(101)位 1(100)位 2 コンピュータとネットワーク概論 第2章 情報の表現 ●位取り法 位取り法とは,それぞれの位の数字を用いて数を表現する 方法である.例えば, 324 = 3×102 + 2×101 + 4×100 と表される.小数点の数も,位取り法で表現できる.例えば, 5309.18 = 5×103 + 3×102 + 0×101 + 9×100 + 1×10-1 + 8×10-2 3 コンピュータとネットワーク概論 第2章 情報の表現 ● r 進数記数法 一般に任意の数N を N an r n an1 r n1 a1 r 1 a0 r 0 a1 r 1 am r m で表され,r 進数の記数法という.ここに r を基数,ai(0≦ai<r)を 係数と呼ぶ. ■10進数の場合,r =10,ai =0, 1, 2, ……, 9 ■ 2進数の場合,r =2,ai =0, 1 ■ 8進数の場合,r =8,ai =0, 1, 2, ……, 7 ■ 16進数の場合,r =16,ai =0, 1, 2, ……, 9, A, B, C, D, E, F (16進数について,A,B,C,D,EとFは数字であり,10進数の数 に対応すると,A=10,B=11,C=12,D=13,E=14,F=15) 4 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数と2進数,8進数,16進数の加法 ■10進数の(7) 10+(8) 10 ■2進数の(1101) 2+(1110) 2 1 + 1 桁上げ → 1 0 1 1 0 1 + 1 1 1 0 1 1 0 1 1 ■16進数の(8) 16+(A) 16 と (A5) 16+(8C) 16 8 + A 桁上げ → 1 2 A 5 + 8 C 1 3 1 5 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数と2進数,8進数,16進数の関係 10 進数 2進数 0 1 2 3 4 5 6 7 8進数 16 進数 10 進数 2進数 0 1 10 11 100 101 110 111 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8進数 16 進数 1000 1001 1010 1011 1100 1101 1110 1111 10 11 12 13 14 15 16 17 8 9 A B C D E F (13)10=(1101)2=(15)8=(D)16 6 コンピュータとネットワーク概論 第2章 情報の表現 ●ビットとバイト ■2進数において,その数の桁数をビット数(bit)という.2進 数 (10101101)2は8桁からなるので,8ビットの2進数という. ■約定: 1バイト= 1B(byte) = 8ビット と定義する.(10101110 11100001)2は2バイトのデータである. ■コンピュータにおいて,次の単位がよく使われている. 1KB=1キロバイト=1,024(210)バイト=8192ビット 1MB=1メガバイト=1,048,576(220)バイト=8388608ビット 1GB=1ギガバイト=1,073,741,824(230)バイト =8589934592ビット 7 コンピュータとネットワーク概論 第2章 情報の表現 2.2 基数の変換 ●2進数⇒10進数 与えられた2進数の数を位取りの形式に展開して計算すれば, 10進数の数になる.例えば, 8 コンピュータとネットワーク概論 第2章 情報の表現 ●2進数⇒10進数 小数の部分も位取りの形式に展開して変換する. 9 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数⇒2進数 10進数の数(135)10 を2進 数に変換する場合,上のよ うに商が0となるまでに2で 連続割って,最後にその余 りを下から上へ読むと,変 換した2進数(10000111)2 が 得られる. 下 か ら 上 へ 読 む よ う に (135)10=(10000111)2 10 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数⇒2進数 小数点の数(0.375)10は次のように変換する. 0 0.375×2= 0 .75 1 小数部分のみ ↓ 0.75×2= 1 .50 1 小数部分のみ ↓ 0.5×2= 1 .00 結果: 011 0となり、誤差なく終了 ↑ よって,誤差が出なく,(0.375)10=(0.011)2となる. 11 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数⇒2進数 しかし,(0.35)10の場合,誤差が出る. 0 0.35×2= 0 .7 1 小数部分のみ ↓ 0.7×2= 1 .40 0 小数部分のみ ↓ 0.40×2= 0 .80 結果: 010 小数点3桁では、誤差が出る ↑ 小数点3桁では誤差があり,(0.35)10≒(0.010)2となる.よって,10 進数(小数点数)を2進数に変換するとき、誤差が出ることがある. 12 コンピュータとネットワーク概論 第2章 情報の表現 ●2進数⇒8進数(16進数) 整数の場合,2進数の数を最下位から左へ3(4)桁ずつ区切っ て分ける.最上位が3(4)桁に足りないとき,0を入れる.そして, その3(4)桁の2進数をそれぞれ8(16)進数に変換する. ( 011 010 111 )2 = ( 327 )8 ↓ ↓ ↓ 8進数 3 2 7 小数の場合( 11010111.01111 )2 ,小数点より左へと右へそれぞ れ3桁(16進数の場合4桁)ずつ区切る . ( 011 010 111 . 011 110 )2 = (327.36)8 ↓ ↓ ↓ ↓ ↓ 8進数 3 2 7 . 3 6 13 コンピュータとネットワーク概論 第2章 情報の表現 ●8(16)進数⇒2進数 8(16)進数の数を2進数に変換するとき,それぞれの数字 を3(4)桁の2進数で表せばよい(小数点の部分も同様).ただ し,位とりの“0”を取り除く. 5 6 . 2 6 )8 = (10101110.01011)2 ( 2 ↓ ↓ ↓ ↓ ↓ 8進数⇒2進数 2進数 010 101 110 . 010 110 )2 2 ( 4 A 5 . 2 C )16 =(10010100101.00101100) ↓ ↓ ↓ ↓ ↓ 16進数⇒2進数 2進数 0100 1010 0101.0010 1100 14 コンピュータとネットワーク概論 第2章 情報の表現 ●8進数⇔16進数 8進数と16進数の変換は,2進数を介して変換を行う. 8進数(16進数) ⇔ 2進数 ⇔ 16進数(8進数) のように簡単に変換できる.例えば,8進数の数(542)8を16進 数に変換すると, 15 コンピュータとネットワーク概論 第2章 情報の表現 ●10進数⇒8(16)進数 8進数と16進数は簡単に2進数に変換できるから,8進数 または16進数を2進数を介して10進数に変換を行う. 例えば,10進数を8進数,16進数に変換するとき, ( 1234 )10=( 10011010010 )2 =( 010 011 010 010 ) 2=(2322)8 =( 0100 1101 0010 ) 2=(4D2)16 16 コンピュータとネットワーク概論 第2章 情報の表現 2.3 数値データの表現(整数) コンピュータの世界で扱われる数値は大きく次のように分 けることができる. 正の整数 整数 数値データ 負の整数 実数(有限桁数の小数) 整数の表現法には,■固定小数点形式,■2進化10進数 ゾーン形式と■2進化10進数パック形式という3種類がある. 実数の表現法には,■浮動小数点形式がある. 17 コンピュータとネットワーク概論 第2章 情報の表現 ●固定小数点形式 整数には正の整数と負の整数がある.nビットの2進数を 用いて,整数を表現する場合,下図のように最上位のビット bn-1 を符号ビットとし,bn-1 =0のとき正の整数を表し,bn-1 =1 のとき負の整数を表す. bn-1 bn-2 …… b1 b0 符号ビット 18 コンピュータとネットワーク概論 第2章 情報の表現 正と負の整数の固定小数点形式 ●正の整数の場合,単に2進数で表現する. 例:(+5)10を4ビットと8ビットの固定小数点形式で表現すると, ( +5 )10=( 0101 )2 ( +5 )10=(00000101 )2 ●負の整数の場合,2の補数で表現する. 19 コンピュータとネットワーク概論 第2章 情報の表現 ●2の補数の求め方 2の補数とは,nビットの2進数aに対して,nビットの2進数a’ があり,a と a’ の和はオーバフローにより,nビットの数が全部0 となる.このとき, a とa’は互いに2の補数という.例えば,4ビッ トの( 0100 )2の2の補数は( 1100 )2となる. 0100 1100 1 0000 オーバフロー aの2の補数の求め方(反転して,プラス1): ● aの各ビットを全て反転する(1→0,0→1). ●それに1を加える. 4ビット 0100 反転 1011 +1 1100 0100と 1100は互いに 2の補数である 20 コンピュータとネットワーク概論 第2章 情報の表現 【例題2.1】 (-98 )10を8ビットの固定小数点形式で表現せよ. [解答]:まず,8ビットで( 98 )10を2進数に変換する. 次に,( 01100010 )2 の2の補数を求める. 01100010 反転 10011101 +1 10011110 よって,(-98)10を固定小数点形式で表すと,次のようになる. (-98 )10=( 10011110 )2 21 コンピュータとネットワーク概論 第2章 情報の表現 ●固定小数点形式の性質 n ビットの固定小数点形式では,表現できる整数の範囲は 2 n 1 ~2 n 1 1 である.コンピュータは,一般に整数を16ビットで表現している. つまり,表現できる整数の範囲は -32768 ( 215 ) ~32767( 215-1) となる.この範囲を超える場合,ビット数を長くする必要がある. 4ビットの場合,表せる範囲は-8~+7である(表2.2を参照) 22 コンピュータとネットワーク概論 第2章 情報の表現 ●固定小数点形式のメリット コンピュータの基本的な計算機能は加算である.どんな 複雑な計算でも加算に変換して計算できる. 固定小数点形式を用いることにより,負の数を2の補数 で表現するから,a-b=a+(-b)のように減算を加算で計 算することができる. 例えば,4ビットを用いて, (7) 10-(5) 10 を 計算する場合,(-5 )10は( 1011 )2となり, (7) 10-(5) 10=(7) 10+(-5) 10=(0111) 2+ (1011) 2=(0010) 2のように加算で減算する オーバフロー (オーバフローは巧みに利用される). 0111 1011 1 0010 23 コンピュータとネットワーク概論 第2章 情報の表現 ●2進化10進数ゾーン形式 10進数の数を下記の対応で4ビットの2進数で表す方法を 2進化10進数ゾーン法という. 4ビット 4ビット 4ビット 4ビット …… 4ビット 4ビット ゾーン部 数字 ゾーン部 数字 …… 符号部 数字 ASCIIコード場合 10進数 2進数 0 1 正 1100 0011 2 負 1101 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 例: 24710 0011 0010 0011 0100 1101 01112 3234D716 ASCIIコードの2である.表2.4 コンピュータとネットワーク概論 24 第2章 情報の表現 ●2進化10進数パック形式 10進数の数を下記の対応で4ビットの2進数で表す方法を 2進化10進数パック法という. 10進数 2進数 例: 4ビット 4ビット …… 4ビット 4ビット 数字 数字 …… 数字 符号部 0 1 2 0000 0001 0010 24710 0010 …… 8 9 正 1100 …… 1000 1001 負 1101 0100 011111012 247D16 25 コンピュータとネットワーク概論 第2章 情報の表現 ●2進化10進数法の特徴 2進化10進数法は,固定小数点形式に比べて,同じビット 数で表現できる整数の範囲は狭い.しかも計算時間もかか る.しかし,10進数の数を2進数で表すには便利である.特 に,次に紹介するASCIIコードとなるので,そのまま数値デー タとして使える. よって,数字の文字列データと数値データの高速変換が 可能である. 26 コンピュータとネットワーク概論 第2章 情報の表現 2.3 数値データの表現(実数) コンピュータの世界では,実数を浮動小数点形式で表現 する.例えば, 874.345=874345×10-3=8.74345×102 のようになっている.指数の大きさを変えれば,小数点の位 置が浮動するから,浮動小数点法と呼ばれている.一般に 実数を ar b で表す.aを仮数,bを指数,rを基数という. 27 コンピュータとネットワーク概論 第2章 情報の表現 浮動小数点形式について 一般的に(単精度の場合),実数を下図のように4バイト (32ビット)で表現し,3つの部分に分けられている. 符号部 S 指数部 E 仮数部 F 1ビット 8ビット 23ビット ●符号部S: 実数の正負を示す.正:S=0,負:S=1 ●指数部E:正規化した場合の指数部分である. ●仮数部F:正規化した場合の仮数部分である. 28 コンピュータとネットワーク概論 第2章 情報の表現 ●正規化について 正規化とは,アメリカのIEEE(電気電子学会)により定めら れた浮動小数点表示の規格のことである.この規格により, 指数部と仮数部を次のように表現する. N (1. a1a2 a3 a4 …… a m)2 b ai は2進数の数とし,bは8ビットの整数(固定小数点形式) である.IEEE規格では,指数部分E=b + (01111111)2(バイア ス表示という)の2進数を記入する.仮数部分Fにa1 a2 a3 a4……amを記入する(左詰め記入,後ろに23ビットまで0で詰 める). 29 コンピュータとネットワーク概論 第2章 情報の表現 【例題2.3】 (-111011.101)2 をIEEE規格の単精度 浮動小数点形式で表せ. [解答]:まず,(-111011.101)2を正規化した2進数で表すと, 1111011.1012 (1.111011101) 2 2 6 2 2 00000110 1.111011101 となる.負の数であるので,符号部(1ビット)S=1となる.仮数部 (23ビット)F=11101110100000000000000で,指数部(8ビット)は E=(00000110)2 + (01111111)2=(10000101)2となる.すなわち, (-111011.101)2は,次のように表現されている. (1100 0010 1111 0111 0100 0000 0000 0000)2=(C2F74000)16 30 コンピュータとネットワーク概論 第2章 情報の表現 浮動小数点形式法の性質 IEEE規格の浮動小数点形式 31 コンピュータとネットワーク概論 第2章 情報の表現 2.4 文字データの表現 文字情報(数字,アルファベット,記号,ひらがな,カタカナ, 漢字など)をある一定体系に基づく2進数の“0”と“1”で表現し たものをコード(code)という. 英数字にはASCIIコードなどがある. 日本語にはJISコード,シフトJISコードとEUCコードなどがある. 32 コンピュータとネットワーク概論 第2章 情報の表現 ●ASCII(アスキー)コードについて 英数字は大文字,小文字,記号など全部で100種類を超えな い.そこで,8ビット(1バイト)で全ての英数文字が表現できる (28=256種類). ASCIIコードとは,American Standard Code for Information Interchangeの略で,1バイトを使っているが,実際には下図のよ うに7ビットしか使われていない. 33 コンピュータとネットワーク概論 第2章 情報の表現 上位 3 ビット 000 001 010 011 100 100 101 110 111 下位 4 ビット (0)16 (1)16 (2)16 (3)16 (4)16 (5)16 (6)16 (7)16 0000 (0)16 NUL DLE SP 0 @ P ` p 0001 0001 (1)16 SOH DC1 ! 1 A Q a q 0010 (2)16 STX DC2 " 2 B R b r 「A」は, 0011 (3)16 ETX DC3 # 3 C S c s 0100 (4)16 EOT DC4 $ 4 D T d t (100 0001)2 0101 (5)16 ENQ NAC % 5 E U e u 0110 =(41)16 (6)16 ACK SYN & 6 F V f v 0111 (7)16 BEL ETB ' 7 G W g w 1000 (8)16 BS CAN ( 8 H X h x 「I like computer.」 1001 (9)16 HT EM ) 9 I Y i y 1010 (A)16 LF/NL SUB * : J Z j z (49 20 6C 69 6B 65 20 63 6F 6D 70 75 74 65 72 2E)16 1011 (B)16 VT ESC + ; K [ k { 1100 (C)16 FF FS , < L ¥ l | 1101 (D)16 CR GS - = M ] m } 1110 (E)16 SO RS . > N ^ n ~ 1111 (F)16 SI US / ? O _ o ●ASCIIコード スペースは20である. コンピュータとネットワーク概論 第2章 情報の表現 34 DEL ●日本語文字の表現 日本語では,アルファベットと数字以外にひらがな,カタカナ と漢字もある.漢字だけでも数千個以上あるため,1バイトで は表現できない.したがって,日本語の文字は2バイト(16ビッ トを用いて表現する.よって, 216=65,536種類の文字が表現 できる. 日本語の文字を表現するコードはJIS(日本工業規格)に規 定されている.「JISコード」,「シフトJIS」と「EUC」などが挙げら れる.これらは一般に「文字コード」と呼ばれている. 35 コンピュータとネットワーク概論 第2章 情報の表現 ●日本語文字コードの構成 文字コードは,実際には「文字集合」と「符号化方式」という要 素から成り立っている. 文字集合は,JIS X 0213(区点コードともいう)(11,223個文字) 符号化方式は,JIS X 0202(ISO 2022) JISコ ード JIS漢字コ ード JIS X 0213 エンコーディング 符号化方式によ る JIS X 0202 SJISコ ード EUCコ ード 36 コンピュータとネットワーク概論 第2章 情報の表現 ●句点コードとJISコードの関係 区点コードでは,漢字の読みの 五十音順に配列されている.例 えば,「愛」の句点コードは1606 (区番号:16,点番号:06)である. 37 コンピュータとネットワーク概論 第2章 情報の表現 ●ユニコードについて 最近,Unicode(ユニコードという)がパソコンに導入されて いる.Unicodeはアメリカのコンピュータ・メーカー連合により 作られた16ビットのコードである.Unicodeは,コンピュータ の機種に係わらず,すべての文字に独立した番号を与えて いる.複数の言語,複数の国をカバーすることができる.特 にデータを多くの異なるシステムの間に,何の乱れもなしに 転送することが可能である. Unicodeは2バイト方式によるもので,65,536文字を割り当 てることができる.この中に約2万個の日本語,中国語,韓 国語の漢字が含まれる.各国で用いられている漢字コード から重複する文字を統合している. 38 コンピュータとネットワーク概論 第2章 情報の表現 2.5 音声データの表現 音声は右図のようなアナロ グ信号である.すなわち,時 間に対して音声の変化が連 続である. 電圧 アナログ音声信号 t コンピュータはアナログ信 号が扱えないため,アナログ 音声信号をディジタル信号 に変換しなければならない. 2進数のディジタル信号 01101111 10110101 11001101 …… 00110100 39 コンピュータとネットワーク概論 第2章 情報の表現 ●アナログ信号⇒デジタル信号へ 電圧 電圧 アナログ音声信号 標本化データ 標本化 t (サンプリング) 量 子 化 t 電圧 量子化 2進数のディジタル信号 01101111 10110101 11001101 …… 00110100 デジタル化 t 40 コンピュータとネットワーク概論 第2章 情報の表現 ●標本化について 1秒間に標本化されたデータの数をサンプリング周波数とい う.シャノンの理論により,サンプリング周波数が音声の最高 周波数の2倍より大きいならば復元できる.サンプリング周波 数が高ければ,復元した音声の品質が保持できるが,標本 化データも多くなる. 電話品質程度: 11025Hz (1秒間11025個のデータを取る) 中程度の品質: 22050Hz (コンピュータの標準として) 高品質,楽音: 44100Hz (CD, DVDなどに用いる) 41 コンピュータとネットワーク概論 第2章 情報の表現 ●量子化とデジタル化について 標本化されたデータをディジタル量にすることを量子化とい う.また,そのデータを何段階の数値で表現するかを示す値 を量子ビット数と呼ぶ. 量子化ビット数が8ビットの場合は,得られた標本化データ を0~255の256段階の数値で表現することができる.16ビット になると,0~65535の65536段階で表現するため,8ビットの 場合よりも細かい違いを表現できる. 高品質の音楽などをディジタル信号に変換するためには 16ビット必要になる. 42 コンピュータとネットワーク概論 第2章 情報の表現 ●音声の情報量の計算例 例えば,サンプリング周波数44100Hzでの標本化データを16ビット で量子化する場合は,1秒当たり(簡単に1KB=1000Bとする) 44100(データ/s)×16(bit)=705600(bit/s)/(8×1000)≒88(KB/s) 1時間の音声データは(1MB=1000KBとする) 88(KB/s)×3600(s)≒317(MB) となる.量子化された数値を2進数に変換すれば,ディジタル信号 化は完了となる. 43 コンピュータとネットワーク概論 第2章 情報の表現 2.6 画像データの表現 dot または pixelという 画像は右図のようにフレームの中で点 の集まりで構成される.この点のことを 画素,ドット(dot)またはピクセル(pixel) という. 右図は16×16(256)個の画素からなる. 1インチの長さに存在する画素数を解像 度といい,dpi(dpi=dots per inch)または ppi(ppi=pixels per inch)で表される.こ の値が大きいほど画質が良くなる. 44 コンピュータとネットワーク概論 第2章 情報の表現 ●画像の構成 画像はドットからなる 45 コンピュータとネットワーク概論 第2章 情報の表現 ●三原色の表現 フルカラー画像のドット(画素)の色は,三原色の赤(red), 緑(green)と青(blue)の濃淡を組み合わせて表示されている. これを,RGB表示という.各画素の色は,それぞれの濃さを8 ビットで256の諧調で表し,0のときは一番薄い,255のときは 一番濃いということになる.つまり,各色の濃さは2桁の16進 数で (r1r2g1g2b1b2)16で指定される. 388551 R:72G132B:81 ? 46 コンピュータとネットワーク概論 第2章 情報の表現 ●画像の情報量と計算例 1色につき8ビットであるので,1つのドット(画素)の色を表 現するのに3×8=24ビット(3バイト)のデータが必要となる. 24ビットで各画素につき,約1677万色が表現できる. 画素数1024×768(横×縦)ドットの画像について,各画素 を24ビットで表すとすると,1枚の静止画像のデータ量は 1024×768×24=18,874,368(bit)≒2.3 MB となる. 47 コンピュータとネットワーク概論 第2章 情報の表現 ●解像度の計算例 画素数1024×768(横×縦)ドットの画像を17インチのコン ピュータ画面で表すと,解像度は次のように求められる. 768 ドット 17インチ 1024ドット 対角線上の1インチに当たるドットが求 められるので,この画面の解像度は 10242 7682 解像度= ≒75dpi 17 dpi: dots per inch(1インチに当たるドット数) 48 コンピュータとネットワーク概論 第2章 情報の表現 ●動画の情報量と計算例 動画の場合は,1秒間に24枚(フレームという)以上の画 像をスライドショーのようにすると連続の動画に見える.動 画にすると,データ量がさらに大きくなる.例えば, 1024×768ドットの画像を1秒間30枚(コンピュータの規格) 用いる動画では,1秒間に, 2.3 MB(bit/frame)×30(frame/s)≒ 69(MB/s) のデータが必要になる.1時間の動画データなら, 69(MB/s)×3600(s)≒ 248 GB となる. 49 コンピュータとネットワーク概論 第2章 情報の表現 第2章のまとめ 1.コンピュータには2進数が使われている. ●2進数と10進数の変換 ●2進数と8進数,16進数の関係 2.数値データの表現 ●整数の表現法には,固定小数点形式法, 2進化10進数 ゾーン形式法と2進化10進数パック形式法がある. ●実数の表現法には,浮動小数点法がある.浮動小数点 法は符号部,指数部と仮数部からなる. 50 コンピュータとネットワーク概論 第2章 情報の表現 第2章のまとめ 完 3.文字データの表現 ●英数字には,ASCIIコードなどがある.●漢字には JISコード,シフトJISコードとEUCコードなどがある. 4.音声データの表現 ●アナログ信号とディジタル信号 ●標本化と量子化 5.画像データの表現 ●画像はドット(画素)からなる ●フルカラー画像の画 素は三原色の濃淡を組み合わせて表示する ●解像度, 静止画像と動画 51 コンピュータとネットワーク概論 第2章 情報の表現
© Copyright 2024 ExpyDoc