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