Download presentation
Presentation is loading. Please wait.
1
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
2008/4/24 基本情報技術概論 (第2回) 数の表現方法 ・ 演算 埼玉大学 理工学研究科 堀山 貴史 2008/01/23
2
前回の復習 単位 bit, byte n 進数 k, M, G, T / m, μ, n
2進数 0, 1, 10, 11, 100, 101, … 8進数 0, 1, 2, …, 6, 7, 10, 11, 12, … 16進数 0, 1, 2, …, 9, A, B, C, D, E, F, 10, … 基数の変換 2A . 18 (16) … 2 x x x 1/ / 162 (10) (2) … (2) = (8) k, M, G, T / m, μ, n ________________
3
前回の復習 (2) 数値の表現方法 例) 整数 符号なし整数 1 9 符号付き整数 絶対値表現 1 -1 1の補数 1 -6 2の補数 1
前回の復習 (2) 例) 数値の表現方法 1 1 1 整数 符号なし整数 1 9 符号付き整数 絶対値表現 1 -1 1の補数 1 -6 2の補数 1 -7 最上位ビットを符号として使う 小数 固定小数点数 浮動小数点数
4
小数の表現方法 固定小数点数 小数点の位置を固定 浮動小数点数に比べて、数値表現の範囲が狭い (大きな数、小さな数が扱えない)
________________ 固定小数点数 小数点の位置を固定 浮動小数点数に比べて、数値表現の範囲が狭い (大きな数、小さな数が扱えない) 例) (2) は? (2) は? 演算が容易 最上位ビットを符号とみて、符号付きの数も扱える
5
小数の表現方法 浮動小数点数 - 0.1 x 2 11 固定小数点数に比べて、数値表現の範囲が広い
指数部 - 0.1 x 2 11 ________________ 浮動小数点数 固定小数点数に比べて、数値表現の範囲が広い 例) (2) は 0.1 x 2 7 (2) は 0.1 x 2 -4 注意: 正規化が必要 仮数部の左端から0が並んでいると、 有効数字が小さくなる。これを防ぐため、 x 2 ○ という形にする。 符号部 仮数部 符号部 指数部 仮数部
6
小数の表現方法 浮動小数点数 (形式その1) - 0.1 x 2 11 符号部 : 仮数部の符号 0:正 1:負
指数部 - 0.1 x 2 11 浮動小数点数 (形式その1) 符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値 正規化 0.1○○○ 指数部 : 正の数も負の数も、ありえる 2の補数表現 符号部 仮数部 符号部(S) 指数部(E) 仮数部(M) 1 bit 7 bit 24 bit (-1) S x 0.M x 2 E
7
小数の表現方法 浮動小数点数 (形式その2) - 0.1 x 2 11 符号部 : 仮数部の符号 0:正 1:負
指数部 - 0.1 x 2 11 浮動小数点数 (形式その2) 符号部 : 仮数部の符号 0:正 1:負 仮数部 : 符号を取り除いた絶対値 正規化 1.○○○ 指数部 : 正の数も負の数も、ありえる 指数部にバイアス (127) が加わっている 符号部 仮数部 符号部(S) 指数部(E) 仮数部(M) 1 bit 8 bit 23 bit バイアス127を 加える バイアス127を 引く (-1) S x 1.M x 2 E-127
8
小数の表現方法 IEEE 浮動小数点数 - 0.1 x 2 11 単精度 (4 バイト : 32 ビット) float
指数部 - 0.1 x 2 11 IEEE 浮動小数点数 単精度 (4 バイト : 32 ビット) 倍精度 (8 バイト : 64 ビット) 形式その2を使う (倍精度のバイアスは 1023) 符号部 仮数部 float 符号部 指数部 仮数部 1 bit 8 bit 23 bit double 符号部 指数部 仮数部 1 bit 11 bit 52 bit
9
四則演算 (+, -, ×, ÷)
10
加算 10進数の加算と同様に、下位の桁からの 桁上がり ( キャリー ) を足していく 注意: オーバーフロー
10進数の加算と同様に、下位の桁からの 桁上がり ( キャリー ) を足していく ________________ 例)4 bit 符号なし整数 1 1 1 1 1 0100 + 0110 1111 + 0001 1 0 1 0 1 0 0 0 0 ________________ 注意: オーバーフロー 演算結果が、表現できる数値の範囲より外側に 超えてしまうことがある
11
減算 10進数の加算と同様に、下位の桁からの 桁借り ( ボロー ) を引いていく 注意: オーバーフロー
10進数の加算と同様に、下位の桁からの 桁借り ( ボロー ) を引いていく ________________ 例)4 bit 符号なし整数 1 1 1 1 1 1010 - 0110 0000 - 0001 0 1 0 0 ? 1 1 1 1 注意: オーバーフロー 演算結果が、表現できる数値の範囲より外側に 超えてしまうことがある
12
減算 (方法2) 2の補数表現を使って、加算 2の補数表現では無視する 例) 4 - 1 = 4 + (-1) 1 1 0100
減算 (方法2) 2の補数表現を使って、加算 例) 4 - 1 = 4 + (-1) 1 1 0100 + 1111 … 4 … -1 1 0 0 1 1 … 3 2の補数表現では無視する
13
2の補数表現の加算 2の補数表現を使って、加算 注意: オーバーフロー 演算結果が、表現できる数値の範囲より外側に 超えてしまうことがある
例) 4 + 4 1 0100 + 0100 … 4 … +4 1 0 0 0 … 8? 正+正=負 負+負=正 注意: オーバーフロー 演算結果が、表現できる数値の範囲より外側に 超えてしまうことがある
14
シフト演算 論理シフト ビット列を左や右に移動させる あふれた値は捨てる 空いたところには 0 を入れる 例) 左シフト 右シフト 1 1
x 0 1 x
15
シフト演算 算術シフト 符号ビットを保持する 2の補数表現で、 2倍(左シフト)や 1/2倍(右シフト)に対応 例) 左シフト 0 0 0
2倍(左シフト)や 1/2倍(右シフト)に対応 例) 左シフト 0 0 0 1 … 1 1 0 x … -6 … -3 x 0 0 1 0 … 2
16
シフト演算 算術シフト 符号ビットを保持する 2の補数表現で、 2倍(左シフト)や 1/2倍(右シフト)に対応 例) 右シフト 0 1
2倍(左シフト)や 1/2倍(右シフト)に対応 例) 右シフト 0 1 … 1 … 2 x 1 0 … -3 … -6 x
17
乗除算 シフトと加減算を組み合わせて実現する 0101 … 5 1101 … 13 … 1101 1000011 … 67 x 0101
1111 1101 10 0101 … 5 … 2 … 1101 1000011 … 67 1101 x 0101 … 13 … 5 1101 0000 1101 0000 1000001 … 65
18
オーバーフロー アンダーフロー 用語: 誤差 ________________ 演算結果が、表現できる数値の範囲より 外側に超えること
用語: 誤差 ________________ オーバーフロー 演算結果が、表現できる数値の範囲より 外側に超えること アンダーフロー 浮動小数点演算では、オーバーフローの他に アンダーフローも起こりえる 演算結果が、表現できる数値の範囲より 細かな数になること ________________ 数値範囲 数直線 0 オーバーフロー アンダーフロー オーバーフロー
19
情報落ち 桁落ち 用語: 誤差 ________________ 浮動小数点演算において、
用語: 誤差 ________________ 情報落ち 浮動小数点演算において、 絶対値の大きな数 と 絶対値の小さな数 の 加減算で、絶対値の小さな数の有効桁数の一部または全部が 演算結果に反映されないことで生じる 例) (2) x 24 – (2) x 2-8 桁落ち 値がほぼ等しい数同士の加減算で、 有効桁数が大幅に減ってしまう 例) x 24 x 24 = x 2-3 ________________ 意味があるのはこの桁のみ
20
打切り誤差 丸め誤差 用語: 誤差 ________________ 演算を途中で打ち切ったことで発生する誤差
用語: 誤差 ________________ 打切り誤差 演算を途中で打ち切ったことで発生する誤差 例) sin x を x – x3/3 ! で計算 (本当は、 x – x3/3 ! + x5/5 ! – x7/7 ! + ・・・ と続く) 丸め誤差 最下位桁より小さい部分について、 丸め(四捨五入や切り上げ、切捨て)を 行うことによって生じる誤差 例) 10/3 = 3.333… → 3.3 ________________
21
文字の表現方法 文字コード 文字集合(扱う文字の集合)の 符号化方式(どのように2進数を対応させるか)を 定めたもの
22
ASC I I コード ANS I (American National Standards Institute) で
________________ ANS I (American National Standards Institute) で 制定された7ビットのコード 英数字、記号、 制御コードからなる 例) A の文字コード 1 0 0 0 0 0 1
23
より多くの文字を取り扱うために ... J I S コード シフト J I S
________________ J I S コード ISO-2022 を符号化方式とした 7ビット 1~2バイトのコード 電子メールのやりとりには、ISO-2022-JP の 符号化方式を用いるのが主流 シフト J I S J I S コードと同じ文字集合 (8ビット 1~2バイト) 以前の Windows や MacOS では、 内部処理用のコードとして主に利用された (現在でも、ユーザはファイル保存時に使える) ________________
24
より多くの文字を取り扱うために ... EUC (EUC-JP) : 拡張 Unix コード Unicode
________________ EUC (EUC-JP) : 拡張 Unix コード J I S コードと同じ文字集合 (8ビット 1~2バイト) 主に Unix で用いられる Unicode 世界中の言語で使う文字を 1つのコード体系に納め(ようとしてい)るコード Window,Mac OS X,Unix 等の最近の OS で 標準的に扱える 符号化方式には、UTF-8 や UTF-16 が用いられる ________________
25
論理演算
26
論理演算 2進数の四則演算 (+, -, ×, ÷) は、 0, 1 を操作すれば実現できる 与えられた 0, 1 (入力) から、
0, 1 を操作すれば実現できる 与えられた 0, 1 (入力) から、 計算結果の 0, 1 (出力) を得る仕組みを作ろう!
27
論理演算 回路記号 真理値表 論理式 NOT (否定) AND (論理積) OR (論理和) XOR (排他的 f = A f = ¬ A
A f 0 1 1 0 f = A f = ¬ A A f f = A ・ B f = A ∧ B A B f 0 0 0 0 1 0 1 0 0 1 1 1 A B f AND (論理積) A B f 0 0 0 0 1 1 1 0 1 1 1 1 f = A + B f = A ∨ B A B f OR (論理和) A B f A B f 0 0 0 0 1 1 1 0 1 1 1 0 f = A + B XOR (排他的 論理和)
28
論理演算: NAND 論理演算 回路記号 真理値表 論理式 NOT (否定) AND (論理積) NAND f = A f = ¬ A A
論理演算: NAND 論理演算 回路記号 真理値表 論理式 NOT (否定) A f 0 1 1 0 f = A f = ¬ A A f A B f 0 0 0 0 1 0 1 0 0 1 1 1 AND (論理積) A B f f = A ・ B f = A ∧ B A B f 0 0 1 0 1 1 1 0 1 1 1 0 f = A ・ B f = A ∧ B A NAND f B
29
論理演算: NOR 論理演算 回路記号 真理値表 論理式 NOT (否定) OR (論理和) NOR f = A f = ¬ A A f
論理演算: NOR 論理演算 回路記号 真理値表 論理式 NOT (否定) A f 0 1 1 0 f = A f = ¬ A A f A B f 0 0 0 0 1 1 1 0 1 1 1 1 OR (論理和) f = A + B f = A ∨ B A B f A B f 0 0 1 0 1 0 1 0 0 1 1 0 f = A + B f = A ∨ B A B f NOR
32
論理演算: 否定 (NOT) 入力の否定 (0, 1 を反転させる) 入力 出力 真理値表 回路記号 論理式 A f A f 0 1 1 0
入力の否定 (0, 1 を反転させる) 入力 出力 A f 真理値表 回路記号 論理式 A f 0 1 1 0 f = A f = ¬ A
33
論理演算: 論理積 (AND) A と B どちらも 1 なら、 f も 1 真理値表 回路記号 論理式 A f B A B f 0 0 0
A B f 0 0 0 0 1 0 1 0 0 1 1 1 f = A ・ B f = A ∧ B
34
論理演算: 論理和 (OR) A または B が 1 なら、 f も 1 真理値表 回路記号 論理式 A f B A B f 0 0 0
A B f 0 0 0 0 1 1 1 0 1 1 1 1 f = A + B f = A ∨ B
35
論理演算: 排他的論理和 (XOR, EOR, EXOR)
A または B 一方のみが 1 なら、 f も 1 A f B 真理値表 回路記号 論理式 A B f 0 0 0 0 1 1 1 0 1 1 1 0 f = A + B
38
この文面は、TOKYO TECH OCW の利用 条件を参考にしました
この教材のご利用について この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を求めることなく、無償で自由にご利用いただけます。講義、自主学習はもちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著作者に帰属します。この教材、または翻訳や改変等を加えたものを公開される場合には、「本教材 (or 本資料) は saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施してください。なお、この教材に改変等を加えたものの著作権は、次ページ以降に示す著作者および改変等を加えた方に帰属します。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する場合には、頒布・再頒布の形態を問わず、このページの利用条件に準拠して無償で自由に利用できるようにしてください。
39
この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/
この powerpoint ファイルの著作者 堀山 貴史 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 26 クリップアート : Microsoft Office Online / クリップアート その他 堀山 貴史
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.