電子回路学 授業内容

0
0
0
1
1
0
1
1
電子回路学
講義#2: 2進化10進数表現
1
授業内容
0
0
0
1
1
0
1
1
n 
復習:
n 
n 
n 
n 
10進数以外の基数から10進数への変換
8進数 ⇄ 2進数の変換
16進数 ⇄ 2進数の変換
2進数のコード化:
n 
n 
n 
BCDコード
3余りコード
グレイコード
2
1
10進数への変換
0
0
0
1
1
0
1
1
n 
8進数の数字の例
←1 0 −1 →
1 3 . 5(8) → 1× 81 + 3× 80 + 5 × 8−1
= 8 + 3+ 0.625
= 24.625
3
10進数への変換
0
0
0
1
1
0
1
1
n 
16進数の数字の例
←1 0 -1 -2 → 27.46 (16) → 2 ×161 + 7 ×16 0 + 4 ×16 −1 + 6 ×16 −2
= 32 + 7 + 0.25 + 0.167
= 39.417
4
2
0
0
0
1
1
0
1
1
n 
n 
10進数への変換
他の基数からも基数展開と合計で変換可能です
4進数の数字の例
←0 -1 -2 → 3.12 (4) → 3× 4 0 +1× 4−1 + 2 × 4−2
= 3+ 0.25 + 0.125
= 3.375
5
0
0
0
1
1
0
1
1
n 
n 
n 
8進数から2進数への変換
13.5(8) を2進数へ
まず各桁を少々離れるように書いておいて、
それぞれの下に3桁分の2進数用の場所を用意します
13.5
1 3 . 5
.
6
3
0
0
0
1
1
0
1
1
n 
n 
n 
8進数から2進数への変換
次いで、各々の桁に下記のように重みを付けて
表す桁に該当位置だけ有効にし、そこに 1 を記述して
有効ではなかった位置に「0」を記入します
上記で得る0と1の数字は、2進数の結果になります
1
3 . 5
421
421
.
421
001 011 . 101
001011.101
0
0
0
1
1
0
1
1
n 
n 
n 
7
10進数から8進数へ
まず10進数を2進数に変換して
小数点を軸に、左右の方向に3ビットずつを区切って
区切りごとに、8進数の桁に変換します
1←2←4←8←16←32←64← 128 (÷2
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1 0 0 0 0 0 0
0
421
421
421
010 000 000
2 0
0
200(8)
8
4
0
0
0
1
1
0
1
1
n 
n 
n 
16進数から2進数への変換
27.46(16)を2進数に変換する
まず、各々の桁に対して4ビットを用意します
各位置に8421の重みを参考に該当の桁の表せる組み合
わせを特定します
2
7 . 4
6
8421
8421 . 8421
8421
0010 0111 . 0100 0110
00100111.01000110
0
0
0
1
1
0
1
1
n 
n 
n 
9
10進数から16進数へ
まず10進数を2進数に変換して
小数点を軸に、左右の方向に4ビットずつを区切って
区切りごとに、16進数の桁に変換します
1←2←4←8←16←32←64← 128 (÷2
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1 0 0 0 0 0 0
0
8421
8421
1000 0000
8
0
80(16)
10
5
0
0
0
1
1
0
1
1
n 
n 
n 
2進数から8進数への変換
001101.110011を8進数に変換する
まず、小数点を軸に左右の両方向に2進数を3桁ごとに
区切ります
区切りごとに、421の重みを参考に該当の8進数の桁を
特定します
001 101 . 110 011
0
0
0
1
1
0
1
1
n 
n 
n 
421
421
. 421
421
1
5 . 6 3
15.63(8)
11
2進数から16進数への変換
10011101.11を16進数に変換する
まず、小数点を軸に左右の両方向に2進数を4桁ごとに
区切ります(桁が足りないとき、補給します)
区切りごとに、8421の重みを参考に該当の16進数の桁
を特定します(10をAで表す等を忘れずに)
1001  1101 . 1100
8421
9
8421
.
8421
13 . 12
9d.c(16)
12
6
0
0
0
1
1
0
1
1
2進数のコード化
13
0
0
0
1
1
0
1
1
n 
2進化10進数表現
2進数を10進数に変換するときは桁ごとに2xの値で掛け
て、合計を取る
29 28 27 26 25 24 23 22 21 20 2-1 2-2
0 1 0 1 0 1 0 1 0 1 . 0 1
14
7
0
0
0
1
1
0
1
1
n 
2進化10進数表現
2進数を10進数に変換するときは桁ごとに2xの値で掛け
て、合計を取る
512 256 128 64 32 16
8
4
2
1
1/2 1/4
0 1 0 1 0 1 0 1 0 1 . 0 1
15
0
0
0
1
1
0
1
1
n 
8421コード
2進数の最初の4つの「重み」(4桁のみ)を使用する
コードは8421(BCD)コードといいます
512 256 128 64 32 16
8
4
2
1
1/2 1/4
0 1 0 1 0 1 0 1 0 1 . 0 1
BCD : Binary-Coded Decimal:2進化10進数
16
8
8421コード
0
0
0
1
1
0
1
1
n 
2進数の4桁で0〜15までの10進数を表せるが、0〜9ま
でだけ、10進数の一桁の記述にしか使わない
2進数
0000
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
10進数
0
1
2
3
4
5
6
7
2進数
1000
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
10進数
8
9
10
11
12
13
14
15
17
0
0
0
1
1
0
1
1
n 
問題#16
37(10)を8421コードで表しなさい
8421 8421
3 7
8421 8421
0011 0111
0011 0111
18
9
3余りコード
0
0
0
1
1
0
1
1
n 
BCDコードの変形版で、10進数の値に3を足してから、
8421コードで表すものです
10進数
0
1
2
3
4
5
6
7
+3
3
4
5
6
7
8
9
10
3余り
0011
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
10進数
8
9
10
11
12
13
14
15
+3
11
12
3余り
1011
1 1 0 0
19
3余りコード
0
0
0
1
1
0
1
1
n 
特徴:
n 
n 
n 
ビット反転だけで10進数の9の補数が得られる
最上位ビット(MSB: Most Significant Bit)は、4以下で0、5以上
で1となるので、四捨五入に便利である。
全ビットが0ではないので、信号途絶との区別に利用できる
10進数
0
1
2
3
4
3余り
0011
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
10進数
9
8
7
6
5
3余り
1100
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
20
10
0
0
0
1
1
0
1
1
n 
問題#21
72の10進数を3余りコードで表しなさい
7 2
21
0
0
0
1
1
0
1
1
n 
問題#21
72の10進数を3余りコードで表しなさい
7+3 2+3
22
11
問題#21
0
0
0
1
1
0
1
1
n 
72の10進数を3余りコードで表しなさい
8421 8421
10 5
8421 8421
1010 0101
1010 0101
23
グレイコード
0
0
0
1
1
0
1
1
n 
鏡コード、反射コードも呼ばれ、一つのビット少ない
のコードから上位のコードを容易に生成できます
2ビット
1ビット
0
1
0
1
1
0
00
01
11
10
3ビット
00
01
11
10
10
11
01
00
0
0
0
0
1
1
1
1
00
01
11
10
10
11
01
00
...
24
12
0
0
0
1
1
0
1
1
n 
0~9のグレイコード
3ビットの「反射」ビットから4ビットのグレイコード
を生成して、その一部分だけ使用します
0
1
2
3
4
5
6
7
8
9
0
0
0
1
1
0
1
1
n 
n 
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
25
問題#22
65(10)をグレイコードで表しなさい
コードの表から、それぞれの桁に対応するコードを記
述する
6 5
0101 0111 26
13
問題#22
0
0
0
1
1
0
1
1
65(10)をグレイコードで表しなさい
表(もしくは記憶)を使わない方法もあります
n 
n 
8421 8421
6 5
0110 0101 27
グレイコード:容易な作成方法
0
0
0
1
1
0
1
1
n 
n 
n 
それぞれの(10進数)の桁の2進数を4ビットで書いて、
先頭(最左)の桁をそのままに記述しておきます
その右の桁を次の規則に従って生成します
n 
i+1のグレイコードの桁を生成するために、その位置と左に
あるi番目の2進数の桁をみて、両方が同じ値であればグレイ
コードの桁を0にし、異なっていれば、1にしていきます
2進数
0 1 1 0
0 1 0 1 0
0
28
14
グレイコード:容易な作成方法
0
0
0
1
1
0
1
1
i+1のグレイコードの桁を生成するために、その位置と
左にあるi番目の2進数の桁をみて、両方が同じ値であ
ればグレイコードの桁を0にし、異なっていれば、1に
していきます
n 
2進数
0 1 1 0
0 1 0 1 0 1
0 1
29
グレイコード:容易な作成方法
0
0
0
1
1
0
1
1
n 
i+1のグレイコードの桁を生成するために、その位置と
左にあるi番目の2進数の桁をみて、両方が同じ値であ
ればグレイコードの桁を0にし、異なっていれば、1に
していきます
2進数
0 1 1 0
0 1 0 1 0 1 0
0 1 1
30
15
グレイコード:容易な作成方法
0
0
0
1
1
0
1
1
n 
i+1のグレイコードの桁を生成するために、その位置と
左にあるi番目の2進数の桁をみて、両方が同じ値であ
ればグレイコードの桁を0にし、異なっていれば、1に
していきます
2進数
0 1 1 0
0 1 0 1 0 1 0 1
0 1 1 1
31
16