第5回 ディジタル回路内の数値表現 瀬戸 ディジタル回路内部で,数を表現する方法(2進数) を学ぶ 10進数⇔2進数⇔16進数の変換ができる 2のべき乗を、K, M, Gを使ってすぐに表せる 2の補数表現を説明できる 10進数⇔2の補数表現の変換ができる http://www.ee.tcu.ac.jp/lectures/digital/index.html ユーザ名: tcu パスワード: seto 1 ディジタル回路内で使用される数の分類 本講義で学習 非負 の整数 0,1,2,3,... 整数 符号 なし 正負 の整数 ...,-2,-1,0,1,2,... 符号 つき 数 固定 小数点数 1.52 小数 固定 浮動 小数点数 1.52 移動 2 10進数、2進数、16進数 10進数 (decimal number) 日常的に使用している数 0~9 の10種類の数字 200810年 2進数 (binary number) コンピュータ、ディジタル回路の中で使用 0, 1の2種類の数字 (1 ... Hレベル, 0 ... Lレベル) 111110110002年 (長くて,見にくい...) 16進数 (HEXadecimal number) 2進数を短く表示するために使用 0~9, A, B, C, D, E, Fの16種類の文字 7D816年 3 そもそも10進数って? (復習) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9の9個の数字を使用 10のべき乗で重み付け 例 2008 =(2x103)+(0x102)+(0x101)+(8x100) 1000の位 100の位 10の位 1の位 1973 =(1x103)+(9x102)+(7x101)+(3x100) 4 本日のテーマ - 2進数 ライプニッツが発明 ドイツの数学者、哲学者 d 微積分記号の提案 dt 2進数の提案 「全ての数を1と0によって表す驚くべき表記法」 (1692年) 5 符号無し2進数は、どんなものか? 0, 1の2種類の数字だけを使用 (0以上の数) 2のべき乗 符号無し2進数の例 1101 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 8の位 最上位 最下位 ビット ビット MSB LSB 4の位 2の位 1の位 10進数への変換: = 8 + 4 + 0 + 1 = 1310 “10進数”を表す 6 では、符号無し2進数は、どんなものか? n個のビット列 an-1an-2...a0で以下の数を表す と決め る n1 an1 2 n2 an2 2 a0 2 0 例: 3ビットの場合、 0 ~ 7 まで表せる 000 0 4 0 2 0 1 0 001 0 4 0 2 1 1 1 110 1 4 1 2 0 1 6 111 1 4 1 2 1 1 7 7 では、16進数は、どんなものか? = = = = = = 0, ..., 9, A, B, C, D, E, F の16種類の文字を使う 10 11 12 13 14 15 16のべき乗 例 1AB= 1 x 162 + A x 161 + B x 160 256の位 16の位 1の位 10進数への変換: = 256 + 160 + 11 = 42710 8 2進数 ⇔ 16進数の変換 (簡単) 2進数は長ったらしいので、16進数に変換することが多い 変換例1: 111010111002を16進数に直せ 最下位ビット( 右 )から4ビットずつ区切り,変換 111 _ 0101 _ 1100 = 75C 7 5 C 変換例2: 3AB16を2進数に直せ 各数字を,2進数にして,つなげる 3 A B = 1110101011 11 1010 1011 9 符号無し数 の2進表現 のまとめ 10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 2進数 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10 2進数の加算 (ディジタル回路で実行可能) 通常の数(10進数) と 全く同様の方法で、筆算 できる 一桁分の加算 4ビットの加算 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 10 (1繰上がり) 1 0 0 1 910 + 0 1 0 1 510 0 0 1 繰上がり 1 0 0 1 910 + 0 1 0 1 510 1 1 1 0 1410 11 0,1だけで “もの”を表す方法 (複数) nビットでは、最大 2n 通りの“もの”が表せる 3ビットだと,2×2×2 = 8 通り 000, 001, 010, 011, 100, 101, 110, 111 例 スイッチの状態 ( 1 ビット) on: 1, off: 0 3色( 2 ビット) 01 10 11 アルファベット 26文字 ( 5 ビット = 25 = 32 ) A: 00000, B: 00001, C: 00010, .... 12 0,1だけでどうやって数を表すのか? (1) 数も“もの”の一種 nビットでは、 最大2n個の“数”が表せる nビットで表せる正の整数(0を含む)は 0~2n-1 3ビットの場合、 0, 1, 2, 3, 4, 5, 6, 7 (= 23 – 1 ) 「0」の分、 1引いている 例 4ビット: 最大 24-1 = 15 ( 1111 ) 8ビット: 最大 28-1 = 255 ( 11111111 ) 13 よく出る 2nの値 (覚えておく) n 0 1 2 3 4 5 6 7 8 9 16 2n 1 2 4 8 16 32 64 128 256 512 65536 n 10 20 30 40 2n 1,024 ≒ 103 1,048,576 ≒ 106 1,073,741,824 ≒ 109 1,099,511,627,776 ≒ 1012 呼び名 K M G T 任意の2nの簡単な計算法 2ab = 210 x a x 2b 計算例 224 = 220 x 24 = 16M 232 = 230 x 22 = 4G 14 10進数から2進数への変換 どんどん2で割り、余りを 最下位からa0 , a1, ...と する a 2n1 a 2n2 a 21 a 20 n1 n 2 n 2 n3 余り 2進数 1 0 2 (an1 2 an2 2 a1 2 ) a0 n 3 n 4 2 (2 (an1 2 an2 2 ) a1 ) a0 2 53・・・ 2 26・・・ 2 13・・・ 2 6・・・ 2 3・・・ 2 1・・・ 0 1・・・ 0・・・ 1・・・ 0・・・ 1・・・ 1・・・ a0 a1 a2 a3 a4 a5 最上位 ビット 0 最下位 ビット a5 a4 a3 a2 a1 a0 1 1 0 1 0 1 必ず検算をする! (2進数→10進 15 数) 符号つき2進数の表現法: 2の 補数表現 以上では、符号なし( 0 か 正 )の2進数のみを考え た 負を含む,符号つきの数は、どうやって0,1で表すの か? マイナス(これが肝) n1 n2 an1 2an-2...a a0nの2の補数表現は,次の値を a0 2 nビット an-1 2 2 表す 0 最上位 ビットが1だと負で,0だと正(0) (符号 ビット) 2の補数の例: 確かに負の数を表現できる 4ビットの2の補数 1011が表す値 16 は? 2進数 10進数 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 -8 1001 -7 1010 -6 1011 -5 1100 -4 1101 -3 1110 -2 1111 -1 例:4ビットの2の補数表現 範囲:-8~7 最上位 ビットが 0だと非負, 1だと負 0000が「0」を表現するため, 負 数が,正 数より1個多い 負の数の最上位ビットは 「 1」 符号 ビットと呼ぶ 17 10進数 2進数 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 -8 1000 -7 1001 -6 1010 -5 1011 -4 1100 -3 1101 -2 1110 -1 1111 2の補数の簡単な計算法 マイナス をつけることに相当 方法 反転して、1を足す 例: 01102(=610)の2の補数 0110 610 反転 1001 1を足す 1 0 1 0 -610 2の補数の性質 数xの2の補数の、そのまた 2の補数は、xに戻る 18 10進数⇒2の補数表現 への変換方法の例 次の10進数を5ビットの2の補数表現(符号付き2進数) で表せ +6 6を符号無し2進数で表現: 110 5ビットに拡張するため,4,5ビット目に0を追加: 00110 -12 対応する正の値(12)を、5ビットの2の補数で表現: 01100 反転して1を足す: 10011 + 1 = 10100 -1 (-12と同様の方法) 1を、5ビットの2進数で表現: 00001 反転して1を足す: 11110+1 = 11111 19 2進数の注意点 符号無しと見るか,符号付き(2の補数表現)と見るかで, 符号ビットが1の場合に異なるので,どちらかを意識する 例: 11112 符号無し2進数と見ると 1 x 2 3 + 1 x 22 + 1 x 2 1 + 1 x 20 = 8 + 4 + 2 + 1 = 15 符号付き2進数(4ビットの2の補数)と見ると 1 x -2 3 + 1 x 2 2 + 1 x 2 1 + 1 x 2 0 = -8 + 4 + 2 + 1 = -1 20 まとめ ディジタル回路内部での,数値の表現法を学 習 2進数 符号無し2進数 (0以上の整数を表現. ) 符号付き2進数 (2の補数表現.正負の整数を表現) 2進数(符号付き/無し)、16進数、10進数の相 互変換 中間試験の範囲 第1回~第6回までの講義内容,演習問題,宿題 21
© Copyright 2024 ExpyDoc