第3章 情報工学の基礎 3.1 3.2 3.3 3.4 情報量 単位と数の表現方法 論理回路 コンピュータ 3.2 単位と数の表現方法 3.2.1 3.2.2 3.2.3 単位 数の表し方 補数による計算 3.2.1 単位 (1)ビットとバイト 情報表現の方法が 電気的に安定で取り扱いが単純なことが必要。 情報を数字の0と1に対応させる。 この1桁をビット(bit)と呼ぶ。 連続した8個のビットをバイト(byte)と呼ぶ。 (2)必要なビット数 N 種類の情報をビットで表現する場合, log2 N ビットが 必要となる。 [例]50種類の文字を表現する log2 50 5.64 これ以上の整数でなければならないから6ビットが必要とな る。ちなみに,このビット数で 2 64 6 となり,64種類まで表現できる。 3.2.2 数の表現方法 (1)10進数とN進数 通常,使用するのは10で桁上がりする10進数 1234 110 2 10 3 10 4 10 3 2 1 0 指の本数が10本だからと言われている 一般には,N進数が考えられる(Nを基数という)。 abcd a N b N c N d N 3 2 1 0 (2)時間/角度/本数等 広い意味での12進数,60進数等とみなすことができる。 時間 角度 鉛筆の本数 タバコの本数 英国の旧貨幣 : : : : : 1時間=60分,1分=60秒 1度=60分,1分=60秒 1ダース=12本 1カートン=200本 1シリング=12ペンス 10は2と5でしか割り切れない。 12は2,3,4,6で割り切れる。 60は2,3,4,5,6で割り切れ る。 10進数にこだわる 必要はない。 (3)2進数 電気信号として表すには, 0 か 1 の2進法が使いやすい。 すなわち, a, b, c, d が 0 か 1 をとる値だとして abcd a 2 b 2 c 2 d 2 3 2 1 0 例えば,2進数の 1010 は, 3 2 0 (1010) 2 1 (2)10 0 (2)10 1 (2)110 0 (2)10 (8)10 (0)10 (2)10 (0)10 (10)10 (4)2進数は長ったらしい 電気信号として表すには便利だが,長ったらしくなるので 人間の目では判別が大変。 そこで 何桁分かをまとめて表記する(通常は,3桁または4桁) ① 3桁毎に区切る場合,23 毎に位上がりするので23 = 8進法 ② 4桁毎に区切る場合,24 毎に位上がりするので24 = 16進法 10進数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2進数 8進数 16進数 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 10 8 1001 11 9 1010 12 A 1011 13 B 1100 14 C 1101 15 D 1110 16 E 1111 17 F (5)8進数と16進数 16進数では, 10進数の10,11,12,13, 14,15を A,B,C,D,E,Fとして表記す る。8進数は8で桁上がり 10進数は10で桁上がり 16進数は(16)10で桁上がり (6)16進数と10進数 [例1](CE)16を10進数へ (C)16=(12)10,(E)16=(14)10 →12×16+14=(206)10 [例2](383)10を16進数へ 383÷16=23 余り 15 → 1 の位 (15)10=(F)16 23÷16= 1 余り 7 → 16 の位 ( 7)10=(7)16 1÷16= 0 余り 1 → 162 の位 ( 1)10=(1)16 従って,(17F)16となる。 (7)2進数と16進数・8進数 [例1](CE)16を2進数へ (C)16=(1100)2,(E)16=(1110)2 →1100 1110 [例2](75)8を2進数へ (7)8=(111)2,(5)16=(101)2 →111 101 [例3](10011101)2を16進数へ(下から4ビットずつ分割) (1001)2 =(9)16,(1101)2 =(D)16 → (9D)16 [例4](10011101)2を8進数へ(下から3ビットずつ分割) (10)2 =(2)8, (011)2 =(3)8,(101)2 =(5)8 → (235)16 (8)BCDについて BCD(Binary Coded Decimal)とは, 10進数の1桁を2進数の4桁で表したコード。 2進化10進符号ともいう。 事務処理関係で特に用いられる。 [例]10進数の(45)10をBCDで表現する。 4→ 0100, 5→0101 (BCD) 0100 0101 10進数の45を16進数で表現すると2Dだから 単純な2進数では, 0010 1101 となる 3.2.3 補数による計算 (1)10進数の減算 下位の桁から順に,桁ごとに大きさを比較し, 引かれる数が引く数より大きければそのまま引き, 引かれる数が小さければ上位桁から10借りてきて… 72 - 18 54 ① 1の位では2<8だから10の位から10借りてくる。 ② 10+2から8を引いて4を1の位の値とする。 ③ 下位から10借りられたので7-1=6とする。 ④ 6≧1だから6-1=5を10の位の値とする。 (2)10の補数の考え方 ここで,まず次のような減算をしておく 1000ー(引く数) (これを10の補数という) 例題の場合,1000-18=982となる。 減算を行うかわりに加算を行ってみよう。 10の補数を加算 例題 72 72 + 982 - 18 54 結果の下3桁は同じ値 1054 (3)10の補数を用いた正負の数 2桁の整数を3桁で表現し,符号の替わりに ① 先頭桁が0のとき正 ② 先頭桁が9のとき負(10の補数) (先頭桁は0,9以外はありえない) とみなす。 補数を使うことで減算ができなくても 加算で代替できる。(3桁を超えたら無視する) (4)8進数・16進数でも補数で負の数を表 現 符号の替わりに ① 先頭桁が0のとき正 ② 先頭桁が(基数ー1)のときに負(補数) (先頭桁は0および(基数ー1)以外はありえない) とみなすことで,加算で減算を代替できる。 (5)補数の一般化 N進数M桁の数Aの補数(complement)とは, ①(NM-A) :Nの補数 ②(NM-A-1) :N-1の補数 (7)例題 [例]01101-00110 ① 00110の1の補数=11001 ② 11001+1=11010 (減数の2の補数) ③ 被減数01101と減数の2の補数を加算 01101 + 11010 100111 ④ あふれビットを無視して00111を結果とする。 (8)補足(1の補数でも減算が可能) [例]1101-0110 ① 0110の1の補数=1001 ③ 被減数1101と減数の1の補数を加算 1101 + 1001 10110 ④ あふれビットを最下位ビットに加える。 (あふれた場合は被減数が負) 0110+1=0111 (9)2進数の小数 10進数では1/10が0.1と表記されたように, 2進数でも1/2を0.1と表記する。 従って,2進数の0.1は,10進数の0.5に相当する。 [例]2進数の0.1011を10進数に変換するには, 次のように計算する。 1 1 1 1 [0.1011]2 1 0 1 1 2 4 8 16 0.5 0 0.125 0.0625 0.6875
© Copyright 2025 ExpyDoc