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
© Copyright 2024 ExpyDoc