第1章 電気工学の基礎

第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 110  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