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