×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
by Naoki Kato ©Naoki Kato ©Naoki Kato 数の表現 Computer Science, Engineering and Literacy
Slide 2
Slide 2 text
by Naoki Kato © Naoki Kato © Naoki Kato 情報とは 意味 を持つものを広くさす概念 情報
Slide 3
Slide 3 text
by Naoki Kato © Naoki Kato © Naoki Kato 無形である情報を 記録するには,伝えるには,… 表現しなければならない 表現の方法(表現メディア) 身体表現:発声,身振り,言葉,… 記号表現:文字,数字,記号,数式,表,… パタン表現:絵,図,映像,音楽,… 情報
Slide 4
Slide 4 text
by Naoki Kato © Naoki Kato © Naoki Kato 情報の記録と伝達 身体表現は 直接伝えることも可 記号・パタン表現は たとえば紙上に 様々な伝達メディアやマスメディアも利用可能 情報
Slide 5
Slide 5 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータで扱えるのは二つの状態 一般的なコンピュータは電気的なスイッチの集合 入力は,電気が流れているか,流れていないか 出力も,電気が流れているか,流れていないか =電圧がかかっているか(H),かかっていないか(L) コンピュータにおける情報の表現 電流を流す 電流を流さない
Slide 6
Slide 6 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータで扱えるのは二つの状態 どんなスイッチ回路も扱える状態は二つの状態 コンピュータにおける情報の表現 X Y S C (⼆進数1桁) HかLか (⼆進数1桁) HかLか 加算結果(1桁⽬) HかLか 加算結果(繰り上がり) HかLか
Slide 7
Slide 7 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータで扱えるのは二つの状態 この二つの状態を 0 と 1 で表現 ビット(bit:binary digit) コンピュータにおける情報の表現
Slide 8
Slide 8 text
by Naoki Kato © Naoki Kato © Naoki Kato より多彩な状態は 0 と 1 の組合せで表現 二つのビットを組み合わせると 4 種類の状態 00, 01, 10, 11 三つのビットを組み合わせると 8 種類の状態 000, 001, 010, 011, 100, 101, 110, 111 N 個のビットを組み合わせると 2N 種類の状態が表現可能 コンピュータにおける情報の表現 ビット列
Slide 9
Slide 9 text
by Naoki Kato © Naoki Kato © Naoki Kato 1000本の睡眠薬入りワイン問題 1000本の中に1本だけ睡眠薬が入っています 睡眠薬入りワインを飲むと 10~20分後に寝てしまい,20分は目が覚めません 30分以内にどのワインに睡眠薬が入っているかを 調べるには最小何人必要か? 最小を考えないなら,一番簡単な答えは1000人 誰か1人が寝るので,その人が飲んだワインが答え おまけ
Slide 10
Slide 10 text
by Naoki Kato © Naoki Kato © Naoki Kato 色々な回答? 999人 誰も寝なかったら,飲まれてないワイン 500人 1回目500本を試す,20分後に残り500本を・・・・🙅🙅 500人 1人目に1番と2番と3番 2人目に3番と4番と5番 500人目に999番と1000番と1番 果たして最小人数は??? おまけ
Slide 11
Slide 11 text
by Naoki Kato © Naoki Kato © Naoki Kato 5~8本なら おまけ 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 3人いると (3bitあると) 最大8種類 (23) を区別可能 0 0 0
Slide 12
Slide 12 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータのマルチメディア化 情報をビット列で表現すると コンピュータに入力(記憶)することができる なんらかの処理をすることができる コンピュータにおける情報の表現 ⽂字や絵図 映像 ⾳楽
Slide 13
Slide 13 text
by Naoki Kato © Naoki Kato © Naoki Kato 情報の表記 ビット列 01010001 だと長たらしい ビット列 01010001 を二進記数法による数とみなし 十六進記数法 51h を用いて表現することが多い コンピュータにおける情報の表現
Slide 14
Slide 14 text
by Naoki Kato © Naoki Kato © Naoki Kato 2進記数法と10進記数法と16進記数法数 (参考)基数変換 00000000 0 0h 00000001 1 1h 00000010 2 2h 00000011 3 3h : : : 00001010 10 0ah : : : 00001111 15 0fh 00010000 16 10h : : :
Slide 15
Slide 15 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータから情報を出し入れする コンピュータに情報を入れるには, 情報をビット列(二進記数法の数)に変換する 符号化 コンピュータから情報を出すには, ビット列(二進記数法の数)を情報に戻す 複合化 コンピュータにおける情報の表現
Slide 16
Slide 16 text
by Naoki Kato © Naoki Kato © Naoki Kato 符号化と複合化 コンピュータにおける情報の表現 東 西 南 北 00 01 10 11 東 西 南 北 符 号 化 複 合 化
Slide 17
Slide 17 text
by Naoki Kato © Naoki Kato © Naoki Kato 数をビット列で表現する 基本は,単純に,数を二進記数法で表す 数の表現 0010101010001010(2) 2A8A(16)
Slide 18
Slide 18 text
by Naoki Kato © Naoki Kato © Naoki Kato 自然数と0の符号化 そのまま二進表記法を利用 0 00000000 10 00001010 1 00000001 11 00001011 2 00000010 12 00001100 3 00000011 13 00001101 4 00000100 14 00001110 5 00000101 15 00001111 6 00000110 16 00010000 7 00000111 17 00010001 8 00001000 18 00010010 9 00001001 : (8ビット長の場合) 数の表現
Slide 19
Slide 19 text
by Naoki Kato © Naoki Kato © Naoki Kato 十進記数法から二進記数法への変換 2で割り算をしていく 2)19 2) 9 1 2) 4 1 2) 2 0 2) 1 0 0 1 19(10) =10011(2) (参考)基数変換 商 余り 余りを逆順に読む
Slide 20
Slide 20 text
by Naoki Kato © Naoki Kato © Naoki Kato 整数の符号化 負の整数をどうするかがポイント 符号-仮数部 最上位ビットを符号とする +7 0111 -7 1111 +6 0110 -6 1110 +5 0101 -5 1101 +4 0100 -4 1100 +3 0011 -3 1011 +2 0010 -2 1010 +1 0001 -1 1001 +0 0000 (-0 1000) (※4ビットの場合) 整数の表現
Slide 21
Slide 21 text
by Naoki Kato © Naoki Kato © Naoki Kato 1の補数 負の整数は,全ビットを反転させる (11・・11から引く) +7 0111 -7 1000 +6 0110 -6 1001 +5 0101 -5 1010 +4 0100 -4 1011 +3 0011 -3 1100 +2 0010 -2 1101 +1 0001 -1 1110 +0 0000 (-0 1111) (4ビットの場合) 整数の表現
Slide 22
Slide 22 text
by Naoki Kato © Naoki Kato © Naoki Kato 1の補数の場合の加算 二進記数法として加算後, 桁があふれたときはそれを加算 +3(0011) +)+1(0001) (0100)+4 +1(0001) -1(1110) +)-2(1101) +)-2(1101) 1110 -1 11011 1 1100 -3 整数の表現
Slide 23
Slide 23 text
by Naoki Kato © Naoki Kato © Naoki Kato 2の補数 負の整数は,1 桁多い 2 のべき乗の値から引く (最上位が1であとは0) -8 1000( 8と同じ) +7 0111 -7 1001( 9と同じ) +6 0110 -6 1010(10と同じ) +5 0101 -5 1011(11と同じ) +4 0100 -4 1100(12と同じ) +3 0011 -3 1101(13と同じ) +2 0010 -2 1110(14と同じ) +1 0001 -1 1111(15と同じ) +0 0000 整数の表現
Slide 24
Slide 24 text
by Naoki Kato © Naoki Kato © Naoki Kato 2の補数の場合の加算 二進記数法の数の加算をすればよい (桁あふれは無視) +3(0011) +1(0001) +)+1(0001) +)-1(1111) (0100)+4 10000 0 +1(0001) -1(1111) +)-2(1110) +)-2(1110) 1111 -1 11101 -3 整数の表現
Slide 25
Slide 25 text
by Naoki Kato © Naoki Kato © Naoki Kato 十進記数法と二進記数法の意味 十進記数法 1 0 9 二進記数法 1 0 1 = 5(10) 実数の表現 102=百が⼀個 101=⼗は無し 100=⼀が九個 22=四が⼀個 21=⼆は無し 20=⼀が⼀個
Slide 26
Slide 26 text
by Naoki Kato © Naoki Kato © Naoki Kato 十進記数法と二進記数法の意味 十進記数法 0.1 0 9 二進記数法 0.1 0 1 = 0.5(10) +0.125(10) =0.625(10) 実数の表現 10-1=⼗分の⼀が⼀個 10-2=百分の⼀は無し 10-3=千分の⼀が九個 2-1=⼆分の⼀が⼀個 2-2=四分の⼀は無し 2-3=⼋分の⼀が⼀個
Slide 27
Slide 27 text
by Naoki Kato © Naoki Kato © Naoki Kato 固定小数点 b1 b0 .b-1 b-2 = b1 ×21+b0 ×20+b-1 ×2-1+b-2 ×2-2 (4 ビット,小数点部 2 ビットの場合) 0000 = 0 0001 = 0.25 1111 = ー0.25 0010 = 0.5 1110 = ー0.5 0011 = 0.75 1101 = ー0.75 0100 = 1 1100 = ー1 0101 = 1.25 1011 = ー1.25 0110 = 1.5 1010 = ー1.5 0111 = 1.75 1001 = ー1.75 実数の表現
Slide 28
Slide 28 text
by Naoki Kato © Naoki Kato © Naoki Kato 十進記数法の小数を二進記数法に変換す る方法 小数部分に2を掛けていく 0.625 2 1.250 2 0.50 2 1.0 0.625(10) =0.101(2) (参考)基数変換
Slide 29
Slide 29 text
by Naoki Kato © Naoki Kato © Naoki Kato 固定小数点で表現できる実数 小数点部 2 ビットの場合, 表現できるのは 2-2(1/4=0.25)単位 小数点部3ビットの場合は,2-3(1/8=0.125)単位 小数点部4ビットの場合は,2-4(1/16=0.0625) : 1/3 は 1/2n での和ではあらわせない 1/3 を 2 進数で表記すると循環小数 0.01010101・・・ 実数の表現
Slide 30
Slide 30 text
by Naoki Kato © Naoki Kato © Naoki Kato 丸め誤差 1/3 = 0.01010101・・・ = 0.0101 1/3 + 1/3 + 1/3 =? 0.0101 0.0101 +)0.0101 0.1111=0.9375 実数の表現 & 丸め誤差
Slide 31
Slide 31 text
by Naoki Kato © Naoki Kato © Naoki Kato コンピュータによる計算時の問題 ∞ Σ2-n を計算したい n=1 無限回数繰り返すことはできないので N 回で打ち切り ∞ Σ2-n 分の誤差が発生 n=N+1 (参考)実数の表現 打ち切り誤差
Slide 32
Slide 32 text
by Naoki Kato © Naoki Kato © Naoki Kato 固定小数点で表現できる実数 4ビットの場合,すべてを整数部に使ったとしても 23-1 (7) ~ 1 , 0 , -1 ~ (-8) -23 8ビットの場合,127~-128 32ビットでも,231-1~1,0,-1~-231の範囲 小数部を使うと,さらに範囲は狭まる より表現範囲を広げたい 浮動小数点 実数の表現
Slide 33
Slide 33 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点 符号部,指数部,仮数部で表現 実数の絶対値 = 仮数部×基数指数部 0010110 = +1.110×2010 = +1.110×2 -1 = +0.111 = +0.875 (符号部1ビット+指数部3ビット+仮数部3ビット) 実数の表現 111 → 4 110 → 3 101 → 2 100 → 1 011 → 0 010 → -1 001 → -2 000 → -3
Slide 34
Slide 34 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点 10進記数法で考えてみます... 7桁使えるとき 固定小数点だと +999999~-9999999 +99999.9~ -999999.9 : 浮動小数点(仮数部3桁)だと +999×10+99~ +001×10-99 0 -001×10-99 ~ -999×10+99 実数の表現
Slide 35
Slide 35 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点の特徴 たとえば整数は 仮数部が3桁(0~999)の場合 0 1 2・・9 10・・999 1000 1010 ・・9990 10000 10100 X × 100 X × 101 X × 102 実数の表現 1000以降は10おきになる 10000以降は100おきになる
Slide 36
Slide 36 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点による計算時の問題 近い値同士の減算をすると... 1.11111×210 有効桁数6桁 ー)1.11101×210 有効桁数6桁 0.00010×210 =1.0×26 有効桁数2桁 実数の表現 桁落ち
Slide 37
Slide 37 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点による計算時の問題 二次方程式の解の公式 で 4ac が限りなく0に近いと 小さい解を求めるとき (限りなくbに近い数値 ‒ b)の計算が発生 桁落ちが発生し,解が不正確に! ※小さい解βは, 1/大きい解αを求めてから で求める 実数の表現 x = −b± b2 − 4ac 2a 1 α c a
Slide 38
Slide 38 text
by Naoki Kato © Naoki Kato © Naoki Kato 浮動小数点による計算時の問題 絶対値が大きく異なる値の加減算を行うと 64(10) +0.125(10) を有効桁数6桁の2進数で計算すると 1.00000×26 +)1.00000×20 1.00000×26 +)0.000001×26 1.00000×26 実数の表現 情報落ち
Slide 39
Slide 39 text
by Naoki Kato © Naoki Kato © Naoki Kato 実数の誤差を体験してみよう! 実数の表現 0.1 0.1 =IF(A1=B1,"○","×")
Slide 40
Slide 40 text
by Naoki Kato © Naoki Kato © Naoki Kato 実数の誤差を体験してみよう! 実数の表現 0.1 0.1 =5.7-5.6 =400.2-400 =1355-1352 0.1 0.2 0.3 3 =135.5-135.2
Slide 41
Slide 41 text
by Naoki Kato © Naoki Kato © Naoki Kato 誤差があるとまずい場面がいろいろある 金融計算などで誤差が出たら大変!! 電卓ではせめて,1÷3×3 は 1 になってほしい 十進数の世界をシミュレートする 二進数の問題は 少数は 1/2,1/4, 1/8,...,1/2n の和で表現 0.1, 0.01, 0.001 など現社会で用いられる 基底数が無限小数=有限桁では正確に表現できない! 誤差の少ない数の表現
Slide 42
Slide 42 text
by Naoki Kato © Naoki Kato © Naoki Kato 10進加算エミュレート 誤差の少ない数の表現
Slide 43
Slide 43 text
by Naoki Kato © Naoki Kato © Naoki Kato お おし しま まい い 数の表現