授業展開#4 2進数世界の数値と文字 表現のレベル 論理表現:0か1 実装表現:スイッチのオン・オフ リレー、真空管、トランジスタ 自然数の表現 自然数:ここでは0以上の整数。 自然数を0と1で表すために2進記法の表現 を使う たとえば、8ビット固定長で整数を表すとする。 10進 59 = 32+16+8+2+1 = 2進 00111011 2進 10111010 = 1×27+0×26+1×25+1×24+ 1×23+0×22+1×21+0×20=128+32+16+8+2 =10進 186 最大値 2進 11111111=128+64+32+16+8+4 +2+1=10進 255(28-1) 2進数の桁の扱い MSB(Most Significant Bit)2進表現のとき最上位の桁 LSB(Least Significant Bit)2進表現のとき最下位の桁 MSB Bit番号 7 6 8bit列 x7 x6 5 x5 4 x4 3 x3 2 x2 LSB 1 0 x1 x0 xi=0,1 自然数の加算 1桁めの2つの数x1、y1の和を求め、下からの繰り上がりci を考慮して、i桁めの数xi、yiの和を求める。 x y s c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 x y ci si ci+1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 上記関数表を真理値表ともいう 整数の表現と計算 正負の符号+と-を、0と1に対応させる必要 最も左端のビット(MSB)で正負の符号を表す。 MSB が0 のとき+、1のとき-とする → -127~ +127の範囲の数字が表せる。 計算が複雑 加える2つの数が同符号→絶対値の和にその符号を つける 加える2つの数が異符号→絶対値の差に絶対値の大 きいほうの符号をつける バイアス表現 バイアス表現:数値の並ぶ順序と大きさの順序を一 致させる。x+127をxとする表現。 -127~ +128の範囲の数字が表せる。 加法では、バイアス分を減じる必要。 10進 さっきの表現 x+127 バイアス表現 -127 11111111 0 00000000 -2 10000010 125 01111101 -1 10000001 126 01111110 0 00000000 or 10000000 127 01111111 1 00000001 128 10000000 2 00000011 129 10000001 127 01111111 254 11111110 128 - 255 11111111 バイアス表現 x+127をxにする 10進数 さっきの表現 バイアス表現 00000000 0 0 -127 00000001 1 1 -126 00000010 2 2 -125 01111111 127 127 0 10000000 128 -0 1 10000001 129 -1 2 11111101 253 -125 126 11111110 254 -126 127 11111111 255 -127 128 00000010+10000001=10000011 十進数 2+129=131 +を0、-を1としたさっきの表現 2-1=-3 バイアス表現 -125(+127)+2(+127)=4+(127) 補数表現 1の補数表現:正の数と0は通常の2進数表現、負 の数は、その絶対値の同じ正の数の0と1を書き換 えたもの。 10進 56 = 2進 00111000 10進 -56 = 2進 11000111 正の領域、負の領域で数の順序は保存 加算も桁あふれを考慮すると簡単 2の補数表現:負の数を表す1の補数表現に1を加 えたもの。 10進 -56 = 2進 11001000←11000111+1 -128~ +127の範囲の数字が表せる。 加算も簡単、桁あふれは無視 整数の表現(3ビット) 2進 000 001 010 011 100 101 110 111 自然数 最初の表現 バイアス表現 1の補数表現 2の補数表現 0 1 2 3 4 5 6 7 0 1 2 3 -0 -1 -2 -3 -3 -2 -1 0 1 2 3 4 0 1 2 3 -3 -2 -1 -0 0 1 2 3 -4 -3 -2 -1 情報の表現とデータ型 実数表現:数字で表したとき小数点を含むような 数値を実数という。 10進7.375 = 2進111.011 2進101.1101 =1×22+0×21+1×20+1×2-1+1×2-2 +0×2-3+1×2-4 =4+1+0.5+0.25+0.0625 =10進5.8125 情報の表現とデータ型 固定小数点表現:5.025 浮動小数点表現:1.025×10-5 ここで「1.025」:仮数、「10」:基数、 「-5」:指数 十進記法では有限でも、他の記法では無限小数に なってしまう場合がある。 10進6.6=2進110.100100100・・・・ コード(符号) あるデータ、あるいは情報を基準となる記号 の列、記号列で表したものを、そのデータの 符号またはコードといい、符号に変換すること を符号化、エンコード(encode)という。逆に、 符号を元の記号に戻すことを復号(化)また はデコード(decode)という。 コンピュータ:すべての情報を0、1のビット列 からなる符号で表す。 文字コード 文字コード:文字列を符号化したもの。 英字のコード:アスキーと呼ばれる8ビット=1バイトコード。 日本語文字は1バイトでは256字種しか使用できないので、 JIS(Japanese Industrial Standard、日本工業規格)で は、1バイトコードとしては、カタカナ、数字と英字の大文字を 割り当てている。 通常の日本語文字としては、かな文字や漢字も使えるように するため、JISでは2バイト=16ビットコードを設定して定義 している。 1バイトコードと2バイトコードの混在の問題や、日本語コード の規格の乱立などいろいろと問題がある。(旧JIS、新JIS、 EUC、DEC) JISコード表現 上位ビット 下 位 ビ ッ ト 0 1 2 3 4 5 6 7 0 NUL DLE (SP) 0 @ P ` p 1 SOH DC1 ! 1 A Q a q 2 STX DC2 ” 2 B R b 3 ETX DC3 # 3 C S 4 EOT DC4 $ 4 D 5 ENQ NAK % 5 6 ACK SYN & 7 BEL ETB 8 BS 9 8 9 A B C D ー タ ミ 。 ア チ ム r 「 イ ツ メ c s 」 ウ テ モ T s t エ ト ヤ E U e u ・ オ ナ ユ 6 F V f v ヲ カ ニ ヨ ’ 7 G W g w ァ キ ヌ ラ CAN ( 8 H X h x ィ ク ネ リ HT EM ) 9 I Y i y ゥ ケ ノ ル A LF SUB * : J Z j z ェ コ ハ レ B VT ESC + ; K [ k { ォ サ ヒ ロ C FF FS , < L ¥ l | ャ シ フ ワ D CR GS - = M ] m } ュ ス ヘ ン E SO RS . > N ^ n  ̄ ョ セ ホ ゛ F SI US / ? O _ o DEL ッ ソ マ ゜ 数字「5」=上位3+下位5→0011+0101→00110101 文字「ア」=上位B+下位1→1011+0001→10110001 E F 16進数表現 0~9まで進んだ後、A,B,C,D,E,Fとして 繰り上がる記数法。 16進数表現1つで2進数4ビットと対応できる。 (1)10=(0001)2=(1)16 (15)10=(1111)2=(F)16 JIS漢字コード表 第2バイト 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 第 1 バ イ ト 21 、 。 22 ◆ □ ■ 23 24 ぁ あ ぃ 25 ァ ア ィ , . ・ : ; ? ! ゛ ゜ ´ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ い ぅ う ぇ え ぉ お か が き イ ゥ ウ ェ エ ォ オ カ ガ キ 30 亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 31 院 陰 隠 韻 吋 右 宇 烏 羽 迂 雨 卯 鵜 32 押 旺 横 欧 殴 王 翁 襖 鴬 鴎 黄 岡 沖 0と1の世界の構成 電気での表現 0:オフ、1:オン (正理論の対応、逆は負理論の対応) 基本 • • • OR(論理和、選言) AND(論理積、連言) NOT(補、否定) OR,AND、NOTの真理値表 x 0 0 1 1 y 0 1 0 1 x OR y x AND y 0 1 1 1 0 0 0 1 x NOT x 0 1 1 0 ブール代数:0、1からなる世界で論理演算を対象に系統的に数学的に組み上げた体系 論理演算回路 基本論理演算回路 0 X 1 0 X Y 1 0 Y 0 0 X 1 1 1 OR AND NOT MIL(Military Standard)記号表現 X Y X Y OR X AND NOT 回路の合成 x y z ((x AND y) OR (NOT z)) AND x y z OR NOT ((x AND y) OR (NOT z)) 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 演習 ① 以下の2進数を10進数に、10進数を2進数 に変換せよ。 (1010101)2= (100)10= ② 次の真理値表を完成せよ。 x y z 0 0 1 1 0 1 0 1 1 1 0 0 x and (y or z) x or (not y) 真理値表1 x y z 0 0 1 1 0 1 0 1 1 1 0 0 y or z x and (y or z) 1 1 0 1 0 0 0 1 真理値表2 x y not y x or (not y) 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 次週(10/29)小テスト 電卓、筆記用具、直筆ノート
© Copyright 2024 ExpyDoc